以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(サブブロック毎のセカンダリ変換のスキップ)
2.第2の実施の形態(スキャン方法を用いたセカンダリ変換の選択)
3.第3の実施の形態(ブロックが正方形である場合の帯域制限のスキップ)
4.第4の実施の形態(ブロックが正方形または長方形からなる矩形である場合の帯域制限のスキップ)
5.第5の実施の形態(その他)
<1.第1の実施の形態>
<ブロック分割>
MPEG2(Moving Picture Experts Group 2(ISO/IEC 13818-2))やMPEG-4 Part10 (Advanced Video Coding、以下AVCと記す)などの旧来の画像符号化方式では、符号化処理は、マクロブロックと呼ばれる処理単位で実行される。マクロブロックは、16x16画素の均一なサイズを有するブロックである。これに対し、HEVC(High Efficiency Video Coding)では、符号化処理は、CU(Coding Unit)と呼ばれる処理単位(符号化単位)で実行される。CUは、最大符号化単位であるLCU(Largest Coding Unit)を再帰的に分割することにより形成される、可変的なサイズを有するブロックである。選択可能なCUの最大サイズは、64x64画素である。選択可能なCUの最小サイズは、8x8画素である。最小サイズのCUは、SCU(Smallest Coding Unit)と呼ばれる。なお、CUの最大サイズは、64x64画素に限定されず、より大きい128x128画素、256x256画素などのブロックサイズとしてもよい。
このように、可変的なサイズを有するCUが採用される結果、HEVCでは、画像の内容に応じて画質及び符号化効率を適応的に調整することが可能である。予測符号化のための予測処理は、PU(Prediction Unit)と呼ばれる処理単位(予測単位)で実行される。PUは、CUをいくつかの分割パタンのうちの1つで分割することにより形成される。また、PUは、輝度(Y)及び色差(Cb,Cr)毎のPB(Prediction Block)と呼ばれる処理単位(予測ブロック)から構成される。さらに、直交変換処理は、TU(Transform Unit)と呼ばれる処理単位(変換単位)で実行される。TUは、CU又はPUをある深さまで分割することにより形成される。また、TUは、輝度(Y)及び色差(Cb, Cr)毎のTB(Transform Block)と呼ばれる処理単位(変換ブロック)から構成される。
<再帰的なブロックの分割>
図1は、HEVCにおけるCUについての再帰的なブロック分割の概要を説明するための説明図である。CUのブロック分割は、1つのブロックの4(=2x2)個のサブブロックへの分割を再帰的に繰り返すことにより行われ、結果として四分木(Quad-Tree)状のツリー構造が形成される。1つの四分木の全体をCTB(Coding Tree Block)といい、CTBに対応する論理的な単位をCTUという。
図1の上部には、一例として、64x64画素のサイズを有するCUであるC01が示されている。C01の分割の深さは、ゼロに等しい。これは、C01がCTUのルートでありLCUに相当することを意味する。LCUサイズは、SPS(Sequence Parameter Set)又はPPS(Picture Parameter Set)において符号化されるパラメータにより指定され得る。CUであるC02は、C01から分割される4つのCUのうちの1つであり、32x32画素のサイズを有する。C02の分割の深さは、1に等しい。CUであるC03は、C02から分割される4つのCUのうちの1つであり、16x16画素のサイズを有する。C03の分割の深さは、2に等しい。CUであるC04は、C03から分割される4つのCUのうちの1つであり、8x8画素のサイズを有する。C04の分割の深さは、3に等しい。このように、CUは、符号化される画像を再帰的に分割することにより形成される。分割の深さは、可変的である。例えば、青空のような平坦な画像領域には、より大きいサイズの(即ち、深さが小さい)CUが設定され得る。一方、多くのエッジを含む急峻な画像領域には、より小さいサイズの(即ち、深さが大きい)CUが設定され得る。そして、設定されたCUの各々が、符号化処理の処理単位となる。
<CUへのPUの設定>
PUは、イントラ予測及びインター予測を含む予測処理の処理単位である。PUは、CUをいくつかの分割パタンのうちの1つで分割することにより形成される。図2は、図1に示したCUへのPUの設定について説明するための説明図である。図2の右には、2Nx2N、2NxN、Nx2N、NxN、2NxnU、2NxnD、nLx2N及びnRx2Nという、8種類の分割パタンが示されている。これら分割パタンのうち、イントラ予測では、2Nx2N及びNxNの2種類が選択可能である(NxNはSCUでのみ選択可能)。これに対してインター予測では、非対称動き分割が有効化されている場合に、8種類の分割パタンの全てが選択可能である。
<CUへのTUの設定>
TUは、直交変換処理の処理単位である。TUは、CU(イントラCUについては、CU内の各PU)をある深さまで分割することにより形成される。図3は、図2に示したCUへのTUの設定について説明するための説明図である。図3の右には、C02に設定され得る1つ以上のTUが示されている。例えば、TUであるT01は、32x32画素のサイズを有し、そのTU分割の深さはゼロに等しい。TUであるT02は、16x16画素のサイズを有し、そのTU分割の深さは1に等しい。TUであるT03は、8x8画素のサイズを有し、そのTU分割の深さは2に等しい。
上述したCU、PU及びTUといったブロックを画像に設定するためにどのようなブロック分割を行うかは、典型的には、符号化効率を左右するコストの比較に基づいて決定される。エンコーダは、例えば1つの2Mx2M画素のCUと、4つのMxM画素のCUとの間でコストを比較し、4つのMxM画素のCUを設定した方が符号化効率が高いならば、2Mx2M画素のCUを4つのMxM画素のCUへと分割することを決定する。
<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もまた、左から右、上から下に辿るように走査される。
以下においては、画像(ピクチャ)の部分領域や処理単位として「ブロック」を用いて説明する場合がある(処理部のブロックではない)。この場合の「ブロック」は、ピクチャ内の任意の部分領域を示し、その大きさ、形状、および特性等は限定されない。つまり、この場合の「ブロック」には、例えば、TB、TU、PB、PU、SCU、CU、LCU(CTB)、サブブロック、マクロブロック、タイル、またはスライス等、任意の部分領域(処理単位)が含まれるものとする。
<セカンダリ変換>
非特許文献1および非特許文献2には、画像とその予測画像の差分である予測残差に対してプライマリ変換を行った後に、さらに、エナジーコンパクションを高める(低域に変換係数を集中させる)ために、変換ブロック内のサブブロック毎に、セカンダリ変換を適用することが記載されている。
しかしながら、非ゼロ係数が疎な予測残差をセカンダリ変換すると、低次から高次の成分にまで係数が拡散してエナジーコンパクションが低下し、符号化効率が低減するおそれがあった。
図5は、セカンダリ変換を行うセカンダリ変換部の主な構成例を示すブロック図である。図5に示されるセカンダリ変換部11は、予測残差がプライマリ変換されたプライマリ変換係数に対して、非特許文献1や非特許文献2に記載の方法でセカンダリ変換を行う処理部である。図5に示されるように、セカンダリ変換部11は、ラスタライズ部21、行列演算部22、スケーリング部23、および行列化部24を有する。
ラスタライズ部21は、入力されたプライマリ変換係数Coeff_Pを、スキャン識別子scanIdxが示すスキャン方法に従ってスキャンし、1次元のベクトルX1dに変換する。例えば、プライマリ変換係数Coeff_Pが、以下の式(1)に示されるような非ゼロ係数が疎な4×4行列であり、スキャン識別子scanIdxが水平スキャン(hor)を示すとすると、ラスタライズ部21は、そのプライマリ変換係数Coeff_Pを以下の式(2)に示されるような1次元のベクトルX1dに変換する。
行列演算部22は、以上のように得られた1次元のベクトルX1dに対して、セカンダリ変換の行列Rを用いて以下の式(3)のような行列演算を行う。例えば、上述の式(2)に示される1次元のベクトルX1dに対して、この行列演算が行われることにより、以下の式(4)に示されるような1次元のベクトルY1dが得られる。
Y
1d
T = R ・X
1d
T
・・・(3)
・・・(4)
スケーリング部23は、以上のように得られた1次元のベクトルY1dに対して、ノルムを正規化するために、以下の式(5)のようなN(Nは自然数)ビットのビットシフト演算を行う。例えば、上述の式(4)に示される1次元のベクトルY1dに対して、このビットシフト演算が行われることにより、以下の式(6)に示されるような1次元のベクトルZ1dが得られる。
Z
1d = ( Y
1d )>>N
・・・(5)
・・・(6)
行列化部24は、以上のように得られた1次元のベクトルZ1dを、スキャン識別子scanIdxによって指定されるスキャン方法に基づいて、行列に変換する。この行列が、プライマリ変換係数Coeff_Pがセカンダリ変換されたセカンダリ変換係数Coeffとして後段の処理部(例えば量子化部等)に供給される。例えば、上述の式(4)に示される1次元のベクトルZ1dに対して、この行列化が行われることにより、以下の式(7)に示されるような4×4の行列のセカンダリ変換係数Coeffが得られる。
以上のように、非ゼロ係数が疎なプライマリ変換係数Coeff_Pをセカンダリ変換すると、係数が低次から高次の成分にまで拡散してエナジーコンパクションが低下し、符号化効率が低減するおそれがあった。
なお、非特許文献2には、セカンダリ変換フラグのオーバヘッドを削減するために、変換ブロック内の非ゼロ係数が所定の閾値以下の場合、セカンダリ変換を適用しないこととし、フラグのシグナルを省略することが開示されている。例えば、閾値TH = 2とすると、プライマリ変換係数Coeff_Pが、上述の式(1)に示されるような行列の場合、セカンダリ変換がスキップ(省略)される。
しかしながら、非特許文献1や非特許文献2に記載の方法の場合、変換ブロックをサブブロック毎にセカンダリ変換する。したがって、例えば、図6に示されるように、プライマリ変換係数Coeff_Pの変換ブロックが2×2のサブブロックにより構成され、各サブブロックが上述の式(1)に示されるような4×4行列である場合、変換ブロック内の非ゼロ係数は4であるので、閾値TH(= 2)より大きく、セカンダリ変換が適用されることとなる。上述のようにセカンダリ変換は、サブブロック毎(4×4行列毎)に行われるので、各サブブロックのセカンダリ変換係数Coeffは、上述の式(7)のようになる。つまり、係数が低次から高次の成分にまで拡散してエナジーコンパクションが低下し、符号化効率が低減するおそれがあった。
<サブブロック単位のセカンダリ変換スキップ制御>
そこで、画像とその画像の予測画像との差分である予測残差から得られる変換係数に対する変換処理のスキップを、サブブロック毎の変換係数の非ゼロ係数の数に基づいて、サブブロック毎に制御するようにする。また、逆変換処理することにより画像とその画像の予測画像との差分である予測残差が得られる変換係数に対する逆変換処理のスキップを、サブブロック毎の変換係数の非ゼロ係数の数に基づいて、サブブロック毎に制御するようにする。例えば、サブブロック内の非ゼロ係数が閾値以下の場合、セカンダリ変換や逆セカンダリ変換をスキップ(省略)するようにする。
このようにすることにより、非ゼロ係数が疎なサブブロックの変換係数に対して、変換処理(逆変換処理)を適用することを抑制することができるので、エナジーコンパクションの低下を抑制し、符号化効率の低減を抑制することができる。
<画像符号化装置>
図7は、本技術を適用した画像処理装置の一態様である画像符号化装置の構成の一例を示すブロック図である。図7に示される画像符号化装置100は、AVCやHEVCのように、画像とその予測画像との予測残差を符号化する装置である。例えば、画像符号化装置100は、HEVCに提案された技術や、JVET(Joint Video Exploration Team)にて提案された技術を実装している。
なお、図7においては、処理部やデータの流れ等の主なものを示しており、図7に示されるものが全てとは限らない。つまり、画像符号化装置100において、図7においてブロックとして示されていない処理部が存在したり、図7において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
図7に示されるように画像符号化装置100は、制御部101、演算部111、変換部112、量子化部113、符号化部114、逆量子化部115、逆変換部116、演算部117、フレームメモリ118、および予測部119を有する。
制御部101は、外部、または予め指定された処理単位のブロックサイズに基づいて、画像符号化装置100に入力される動画像を処理単位のブロック(CU, PU, 変換ブロック(TB)など)へ分割し、分割されたブロックに対応する画像Iを演算部111へ供給させる。また、制御部101は、各ブロックへ供給する符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo等)を、例えば、RDO(Rate-Distortion Optimization)に基づいて決定する。決定された符号化パラメータは、各ブロックへ供給される。
ヘッダ情報Hinfoは、例えば、ビデオパラメータセット(VPS(Video Parameter Set))、シーケンスパラメータセット(SPS(Sequence Parameter Set))、ピクチャパラメータセット(PPS(Picture Parameter Set))、スライスヘッダ(SH)等の情報を含む。例えば、ヘッダ情報Hinfoには、画像サイズ(横幅PicWidth、縦幅PicHeight)、ビット深度(輝度bitDepthY, 色差bitDepthC)、CUサイズの最大値MaxCUSize/最小値MinCUSize、変換ブロックサイズの最大値MaxTBSize/最小値MinTBSize、変換スキップブロックの最大値MaxTSSize(最大変換スキップブロックサイズとも称する)、各符号化ツールのオンオフフラグ(有効フラグとも称する)などを規定する情報が含まれる。もちろん、ヘッダ情報Hinfoの内容は任意であり、上述した例以外のどのような情報がこのヘッダ情報Hinfoに含まれるようにしてもよい。
予測モード情報Pinfoには、例えば、処理対象PUのPUサイズ(予測ブロックサイズ)を示す情報であるPUサイズPUSize、処理対象のブロックのイントラ予測モードに関する情報であるイントラ予測モード情報IPinfo(例えば、JCTVC-W1005, 7.3.8.5 Coding Unit syntax中のprev_intra_luma_pred_flag, mpm_idx, rem_intra_pred_mode等)、処理対象のブロックの動き予測に関する情報である動き予測情報MVinfo(例えば、JCTVC-W1005, 7.3.8.6 Prediction Unit Syntax中のmerge_idx, merge_flag, inter_pred_idc, ref_idx_LX, mvp_lX_flag, X={0,1}, mvd等)等が含まれる。もちろん、予測モード情報Pinfoの内容は任意であり、上述した例以外のどのような情報がこの予測モード情報Pinfoに含まれるようにしてもよい。
変換情報Tinfoには、例えば、以下のような情報が含まれる。
ブロックサイズTBSize(あるいは、2を底とするTBSizeの対数値log2TBSize、変換ブロックサイズとも称する)は、処理対象変換ブロックのブロックサイズを示す情報である。
セカンダリ変換識別子(st_idx)は、対象とするデータ単位において、どのセカンダリ変換または逆セカンダリ変換((逆)セカンダリ変換とも称する)を適用するかを示す識別子である(例えば、JVET-B1001、2.5.2 Secondary Transformsを参照。JEM2では、nsst_idx, rot_idxとも称する)。換言するに、このセカンダリ変換識別子は、対象とするデータ単位における(逆)セカンダリ変換の内容に関する情報である。
例えば、セカンダリ変換識別子st_idxは、その値が0より大きい場合、(逆)セカンダリ変換の行列を指定する識別子である。換言するに、この場合、セカンダリ変換識別子st_idxは、(逆)セカンダリ変換の実行を示す。また、例えば、セカンダリ変換識別子st_idxは、その値が0の場合、(逆)セカンダリ変換のスキップを示す。
スキャン識別子(scanIdx)は、スキャン方法に関する情報である。量子化パラメータ(qp)は、対象とするデータ単位において、(逆)量子化に用いられる量子化パラメータを示す情報である。量子化マトリックス(scaling_matrix)は、対象とするデータ単位において、(逆)量子化に用いられる量子化マトリックスを示す情報である(例えば、JCTVC-W1005, 7.3.4 Scaling list data syntax)。
もちろん、変換情報Tinfoの内容は任意であり、上述した例以外のどのような情報がこの変換情報Tinfoに含まれるようにしてもよい。
ヘッダ情報Hinfoは、例えば、各ブロックに供給される。予測モード情報Pinfoは、例えば、符号化部114および予測部119に供給される。変換情報Tinfoは、例えば、変換部112、量子化部113、符号化部114、逆量子化部115、および逆変換部116に供給される。
演算部111は、入力された処理単位のブロックに対応する画像Iから、予測部119から供給された予測画像Pを、式(8)に示すように減算して予測残差Dを求め、それを変換部112に供給する。
D=I-P
・・・(8)
変換部112は、制御部101から供給される変換情報Tinfoに基づいて、演算部111から供給される予測残差Dに対して変換処理を行い、変換係数Coeffを導出する。変換部112は、その変換係数Coeffを量子化部113に供給する。
量子化部113は、制御部101から供給される変換情報Tinfoに基づいて、変換部112から供給される変換係数Coeffをスケーリング(量子化)する。つまり、量子化部113は、変換処理が行われた変換係数Coeffの量子化を行う。量子化部113は、その量子化により得られた量子化後の変換係数、すなわち量子化変換係数レベルlevelを符号化部114および逆量子化部115に供給する。
符号化部114は、量子化部113から供給される量子化変換係数レベルlevel等を所定の方法で符号化する。例えば、符号化部114は、シンタックステーブルの定義に沿って、制御部101から供給される符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo等)や、量子化部113から供給される量子化変換係数レベルlevelを、各シンタックス要素のシンタックス値へ変換し、各シンタックス値を符号化(例えば、算術符号化)し、ビット列(符号化データ)を生成する。
また、符号化部114は、量子化変換係数レベルlevelから残差情報RInfoを導出し、残差情報RInfoを符号化し、ビット列(符号化データ)を生成する。
残差情報RInfoには、例えば、ラスト非ゼロ係数X座標(last_sig_coeff_x_pos)、ラスト非ゼロ係数Y座標(last_sig_coeff_y_pos)、サブブロック非ゼロ係数有無フラグ(coded_sub_block_flag)、非ゼロ係数有無フラグ(sig_coeff_flag)、非ゼロ係数のレベルが1より大きいかを示すフラグ情報であるGR1フラグ(gr1_flag)、非ゼロ係数のレベルが2より大きいかを示すフラグ情報であるGR2フラグ(gr2_flag)、非ゼロ係数の正負を示す符号であるサイン符号(sign_flag)、非ゼロ係数の残余レベルを示す情報である非ゼロ係数残余レベル(coeff_abs_level_remaining)などが含まれる(例えば、JCTVC-W1005の7.3.8.11 Residual Coding syntaxを参照)。もちろん、残差情報RInfoの内容は任意であり、上述した例以外のどのような情報がこの残差情報RInfoに含まれるようにしてもよい。
符号化部114は、例えば、符号化された各シンタックス要素のビット列(符号化データ)を多重化し、ビットストリームとして出力する。
逆量子化部115は、制御部101から供給される変換情報Tinfoに基づいて、量子化部113から供給される量子化変換係数レベルlevelの値をスケーリング(逆量子化)し、逆量子化後の変換係数Coeff_IQを導出する。逆量子化部115は、その変換係数Coeff_IQを逆変換部116に供給する。この逆量子化部115により行われる逆量子化は、量子化部113により行われる量子化の逆処理であり、後述する画像復号装置において行われる逆量子化と同様の処理である。したがって、この逆量子化については、画像復号装置に関する説明において後述する。
逆変換部116は、制御部101から供給される変換情報Tinfoに基づいて、逆量子化部115から供給される変換係数Coeff_IQに対して逆変換を行い、予測残差D’を導出する。逆変換部116は、その予測残差D’を演算部117に供給する。この逆変換部116により行われる逆変換は、変換部112により行われる変換の逆処理であり、後述する画像復号装置において行われる逆変換と同様の処理である。したがって、この逆変換については、画像復号装置に関する説明において後述する。
演算部117は、逆変換部116から供給される予測残差D’と、予測部119より供給される、その予測残差D’に対応する予測画像P(予測信号)とを、以下の式(9)のように加算して局所的な復号画像Recを導出する。演算部117は、その局所的な復号画像Recをフレームメモリ118に供給する。
Rec=D’+P
・・・(9)
フレームメモリ118は、演算部117より供給される局所的な復号画像Recを用いてピクチャ単位毎の復号画像を再構築し、フレームメモリ118内のバッファへ格納する。フレームメモリ118は、予測部119により指定される復号画像を参照画像としてバッファより読み出し、予測部119に供給する。また、フレームメモリ118は、復号画像の生成に係るヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfoなどを、フレームメモリ118内のバッファに格納するようにしても良い。
予測部119は、予測モード情報PInfoによって指定される、フレームメモリ118に格納された復号画像を参照画像として取得し、その参照画像を用いて、予測モード情報Pinfoによって指定される予測方法により予測画像Pを生成する。予測部119は、生成した予測画像Pを演算部111や演算部117に供給する。
このような画像符号化装置100において、画像とその画像の予測画像との差分である予測残差から得られる変換係数に対する変換処理のスキップを、サブブロック毎の変換係数の非ゼロ係数の数に基づいて、サブブロック毎に制御する制御部を備えるようにする。つまり、変換部112が、画像とその画像の予測画像との差分である予測残差から得られる変換係数に対する変換処理のスキップを、サブブロック毎の変換係数の非ゼロ係数の数に基づいて、サブブロック毎に制御するようにする。
<変換部>
図8は、変換部112の主な構成例を示すブロック図である。図8において、変換部112は、プライマリ変換部131およびセカンダリ変換部132を有する。
プライマリ変換部131は、演算部111から供給される予測残差Dに対して、例えば直交変換等のプライマリ変換を実行し、その予測残差Dに対応するプライマリ変換後の変換係数Coeff_P(プライマリ変換係数とも称する)を導出する。すなわち、プライマリ変換部131は、予測残差Dをプライマリ変換係数Coeff_Pに変換する。プライマリ変換部131は、導出したプライマリ変換係数Coeff_Pをセカンダリ変換部132(後述するラスタライズ部141およびスイッチ148)に供給する。
セカンダリ変換部132は、プライマリ変換部131から供給されるプライマリ変換係数Coeff_Pを1次元のベクトル(行ベクトルとも称する)に変換し、その1次元のベクトルに対する行列演算を行い、その行列演算が行われた1次元のベクトルのスケーリングを行い、そのスケーリングされた前記1次元のベクトルを行列化する変換処理であるセカンダリ変換を行う。
セカンダリ変換部132は、セカンダリ変換の内容に関する情報であるセカンダリ変換識別子st_idxと、変換係数のスキャン方法に関する情報であるスキャン識別子scanIdxとに基づいて、プライマリ変換係数Coeff_Pに対してセカンダリ変換を行い、セカンダリ変換後の変換係数Coeff(セカンダリ変換係数とも称する)を導出する。つまり、セカンダリ変換部132は、プライマリ変換係数Coeff_Pをセカンダリ変換係数Coeffに変換する。セカンダリ変換部132は、そのセカンダリ変換係数Coeffを、量子化部113に供給する。
なお、セカンダリ変換部132は、セカンダリ変換をスキップ(省略)し、プライマリ変換係数Coeff_Pを、セカンダリ変換係数Coeffとして、量子化部113に供給することもできる。
図8に示されるように、セカンダリ変換部132は、ラスタライズ部141、行列演算部142、スケーリング部143、行列化部144、セカンダリ変換選択部145、量子化部146、非ゼロ係数数判定部147、およびスイッチ148を有する。
ラスタライズ部141は、スキャン識別子scanIdxによって指定される変換係数のスキャン方法に基づいて、サブブロック単位(4×4サブブロック)毎に、プライマリ変換部131から供給されるプライマリ変換係数Coeff_Pを1次元のベクトルX1dへ変換する。ラスタライズ部141は、得られた1次元のベクトルX1dを行列演算部142に供給する。
図9のAは、スキャン識別子scanIdxの各値によって指定されるスキャンタイプscanTypeを示している。図9のAに示されうように、スキャン識別子scanIdxが0の場合、斜め方向スキャン(up-right diagonal scan)が指定され、スキャン識別子scanIdxが1の場合、水平方向スキャン(horizontal fast scan)が指定され、スキャン識別子scanIdxが2の場合、垂直方向スキャン(vertical fast scan)が指定される。図9のB乃至図9のDは、4×4サブブロックにおける各スキャンの係数のスキャン順を示している。図9のB乃至図9のDにおいて、各係数位置に付された番号は、該係数位置がスキャンされる順番を示している。図9のBは、水平方向スキャン(horizontal fast scan)のスキャン順の例を示し、図9のCは、垂直方向スキャン(vertical fast scan)のスキャン順の例を示し、図9のDは、斜め方向スキャン(up-right diagonal scan)のスキャン順の例を示す。
セカンダリ変換選択部145は、セカンダリ変換識別子st_idxで指定されるセカンダリ変換の行列Rを、セカンダリ変換選択部145の内部メモリ(不図示)より読み出し、行列演算部142に供給する。例えば、セカンダリ変換選択部145は、あるセカンダリ変換識別子st_idxの値のとき、セカンダリ変換として、図10に示される16×16の行列Rを読み出し、行列演算部142に供給する。
なお、セカンダリ変換選択部145が、セカンダリ変換識別子st_idxおよびイントラ予測モード情報IPinfo(例えば、予測モード番号)に応じて、セカンダリ変換の行列Rを選択するようにしてもよい。また、セカンダリ変換選択部145が、イントラ予測モード情報IPinfoの代わりに、動き予測情報MVinfoおよびセカンダリ変換識別子st_idxに応じて、セカンダリ変換の行列Rを選択するようにしてもよい。
行列演算部142は、1次元のベクトルX1dおよびセカンダリ変換の行列Rを用いて、以下の式(10)に示すような行列演算を行い、その結果である1次元のベクトルY1dをスケーリング部143に供給する。式(10)において、演算子"・"は、行列同士の内積(行列積)を行う操作を表し、演算子"T"は、転置行列の操作を表す。
Y1d
T=R・X1d
T
・・・(10)
スケーリング部143は、行列演算部142から供給される信号Y1d(すなわち1次元のベクトルY1d)のノルムを正規化するために、以下の式(11)に示されるようなN(Nは自然数)ビットのビットシフト演算を行い、ビットシフト後の信号Z1d(すなわち1次元のベクトルZ1d)を求める。なお、以下の式(12)のようにNビットのシフト演算前に、オフセットとして、1<<(N-1)の値を、1次元のベクトルZ1dの各要素へ加算するようにしてもよい。
Z1d=(Y1d)>>N
・・・(11)
Z1d=(Y1d+((N-1)<<1)・E)>>N
・・・(12)
なお、式(12)において、Eは、すべての要素の値が1の1×16次元のベクトルである。例えば、図10に示されるセカンダリ変換の行列Rは、8ビットスケーリングされた行列であるため、スケーリング部143において、ノルムの正規化に用いるNの値は8である。一般的に、セカンダリ変換の行列Rが、Nビットスケーリングされている場合、ノルム正規化のビットシフト量は、Nビットである。スケーリング部143は、以上のように得られた1次元のベクトルZ1dを行列化部144に供給する。
行列化部144は、スキャン識別子scanIdxによって指定されるスキャン方法に基づいて、ノルム正規化後の1×16次元のベクトルZ1dを4×4行列へ変換する。行列化部144は、得られた変換係数Coeffを、量子化部146およびスイッチ148に供給する。
量子化部146は、量子化部113と基本的に同様の処理(量子化)を行う。ただし、量子化部146は、プライマリ変換係数Coeff_P、セカンダリ変換係数Coeff(ラスタライズ部141乃至行列化部144までの処理実行後)、変換情報Tinfoの一部である量子化パラメータqp、および、量子化マトリックスscaling_matrixを入力とする。量子化部146は、プライマリ変換部131から供給されるプライマリ変換係数Coeff_Pと、行列化部144から供給される変換係数であるセカンダリ変換係数Coeffとのそれぞれについて、量子化パラメータqp、量子化マトリックスscaling_matrixを参照し、例えば、以下の式(13)および式(14)のように量子化し、量子化後のプライマリ変換係数level_P(量子化プライマリ変換係数とよぶ)、量子化後のセカンダリ変換係数level_S(量子化セカンダリ変換係数とよぶ)を導出する。
level_P(i,j) = sign (coeff_P(i,j)) × (( abs ( coeff_P(i,j)) × f[qp%6] × (16 / w(i,j)) + offsetQ ) >> qp / 6 ) >> shift1
・・・(13)
level_S(i,j) = sign (coeff (i,j)) × (( abs ( coeff (i,j)) × f[qp%6] × (16 / w(i,j)) + offsetQ ) >> qp / 6 ) >> shift1
・・・(14)
式(13)や式(14)において、演算子sign(X)は、入力値Xの正負の符号を返す演算子である。例えば、X >= 0であれば、+1を、X < 0であれば、-1を返す。また、f[]は、量子化パラメータに依存するスケーリングファクターであり、以下の式(15)のような値をとる。
F[qp%6] = [26214, 23302, 20560, 18396, 16384, 16384, 14564]
・・・(15)
また、式(13)や式(14)において、w(i,j)は、Coeff(i,j)や(Coeff_P(i,j))の係数位置(i,j)に対応する量子化マトリックスscaling_matrixの値である。つまり、このw(i,j)は、以下の式(16)のように求められる。さらに、shift1およびoffsetQは、以下の式(17)や(18)のように求められる。
w(i,j) = scaling_matrix(i,j)
・・・(16)
shift1 = 29 - M - B
・・・(17)
offsetQ = 28 - M - B
・・・(18)
ただし、式(17)および(18)において、Mは2を底とする変換ブロックのブロックサイズTBSizeの対数値であり、Bは、入力信号のビット深度bitDepthである。
M = log2(TBSize)
B = bitDepth
なお、式(13)および式(14)に示される量子化によらず、量子化方法は実施可能な範囲で変更可能である。
量子化部146は、以上のようにして得られた量子化プライマリ変換係数level_Pおよび量子化セカンダリ変換係数level_Sを非ゼロ係数数判定部147に供給する。
非ゼロ係数数判定部147は、サブブロック毎に、量子化プライマリ変換係数level_Pおよび量子化セカンダリ変換係数level_Sを入力とする。非ゼロ係数数判定部147は、量子化部146から供給された量子化プライマリ変換係数level_Pおよび量子化セカンダリ変換係数level_Sを参照して、それぞれについて、サブブロック内の非ゼロ係数の数numSigInSBK_P(量子化プライマリ変換係数の非ゼロ係数数とも称する)およびnumSingInSBK_S(量子化セカンダリ変換係数の非ゼロ係数数とも称する)を、例えば、以下の式(19)および式(20)により導出する。なお、式(19)および式(20)において、(i,j)は、サブブロック内の座標を表し、i=0…3, j=0…3である。また、演算子abs(X)は、入力値Xの絶対値を返す演算子である。式(19)及び式(20)によって、量子化後の変換係数のレベル値が0より大きい変換係数(非ゼロ係数)の数を導出することができる。なお、式(19)及び式(20)において、非ゼロ係数の判定条件(abs(level_X(i,j))>0)(X=P, S)は、(level_X(i,j)!=0)の判定条件に置き換えてもよい。
numSigInSBK_P = Σ{abs(level_P(i,j))>0 ? 1 : 0}
・・・(19)
numSigInSBK_S = Σ{abs(level_S(i,j))>0 ? 1 : 0}
・・・(20)
非ゼロ係数数判定部147は、量子化プライマリ変換係数の非ゼロ係数数numSigInSBK_Pと、量子化セカンダリ変換係数の非ゼロ係数数numSigInSBK_Sと所定の閾値THを参照して、以下の式(21)により、セカンダリ変換のスキップに関する情報であるセカンダリ変換スキップフラグStSkipFlagを導出する。
StSkipFlag = ( numSigInSBK_P <= numSigInSBK_S && numSigInSBK_P <= TH ) ? 1 : 0
・・・(21)
閾値THは、例えば2を設定するが、これに限定されず、0乃至16までの値に設定することができる。また、閾値THは、VPS/SPS/PPS/スライスヘッダSHなどのヘッダ情報において通知してもよい。また、閾値THは、符号化側(例えば画像符号化装置100)と復号側(例えば、後述する画像復号装置200)との間で予め取り決めておき、符号化側から復号側への通知(閾値THの、符号化側から復号側への伝送)を省略するようにしてもよい。
式(21)では、量子化プライマリ変換係数の非ゼロ係数数numSigInSBK_Pが量子化セカンダリ変換係数の非ゼロ係数数numSigInSBK_S以下の場合であって、かつ、量子化プライマリ変換係数の非ゼロ係数数numSigInSBK_Pが閾値TH以下の場合、セカンダリ変換スキップStSkipFlagの値が1に設定される。すなわち、セカンダリ変換スキップStSkipFlagにおいて、セカンダリ変換をスキップすることが示される。それ以外の場合(numSigInSBK_P>numSigInSBK_S || numSigInSBK_P > TH )、セカンダリ変換スキップStSkipFlagの値が0に設定される。すなわち、セカンダリ変換スキップStSkipFlagにおいて、セカンダリ変換を実行することが示される。
なお、上述の式(21)の代わりに、以下の式(22)または式(23)を用いるようにしてもよい。式(23)を用いる場合、セカンダリ変換係数の量子化処理を省略してもよい。
StSkipFlag = ( numSigInSBK_P <= numSigInSBK_S && numSigInSBK_S <= TH ) ? 1 : 0
・・・(22)
StSkipFlag = ( numSigInSBK_P <= TH ) ? 1 : 0
・・・(23)
非ゼロ係数数判定部147は、導出したセカンダリ変換スキップフラグStSkipFlagをスイッチ148に供給する。
スイッチ148は、サブブロック単位のプライマリ変換係数Coeff_P、セカンダリ変換係数Coeff、およびセカンダリ変換スキップフラグStSkipfFlagを入力とする。スイッチ148は、非ゼロ係数数判定部147から供給されるセカンダリ変換スキップフラグStSkipFlagに応じて、セカンダリ変換のスキップを制御する。
例えば、セカンダリ変換スキップフラグStSkipFlagの値が0の場合、すなわち、セカンダリ変換スキップStSkipFlagにおいて、セカンダリ変換の実行が示されている場合、スイッチ148は、セカンダリ変換を実行させる。すなわち、スイッチ148は、行列化部144から供給されるセカンダリ変換係数Coeffを量子化部113に供給する。また、例えば、セカンダリ変換スキップフラグStSkipFlagの値が1の場合、すなわち、セカンダリ変換スキップStSkipFlagにおいて、セカンダリ変換のスキップが示されている場合、スイッチ148は、セカンダリ変換をスキップさせる。すなわち、スイッチ148は、プライマリ変換部131から供給されるプライマリ変換係数Coeff_Pをセカンダリ変換係数Coeffとして量子化部113に供給する。
なお、スイッチ148は、セカンダリ変換識別子st_idxにも基づいて、セカンダリ変換のスキップを制御することができる。例えば、セカンダリ変換識別子st_idxが0である(セカンダリ変換のスキップを示す)場合、スイッチ148は、セカンダリ変換スキップフラグStSkipFlagの値に関わらず、セカンダリ変換をスキップさせる。すなわち、スイッチ148は、プライマリ変換部131から供給されるプライマリ変換係数Coeff_Pをセカンダリ変換係数Coeffとして量子化部113に供給する。また、例えば、セカンダリ変換識別子st_idxが0より大きい(セカンダリ変換の実行を示す)場合、スイッチ148は、セカンダリ変換スキップフラグStSkipFlagを参照して、上述したようにセカンダリ変換を制御する。
以上のように、非ゼロ係数数判定部147がサブブロック毎の非ゼロ係数の数に基づいて、セカンダリ変換スキップフラグStSkipFlagを設定し、スイッチ148が、そのセカンダリ変換スキップフラグStSkipFlagに基づいて、セカンダリ変換のスキップを制御する。このようにすることにより、非ゼロ係数が疎なサブブロックに対するセカンダリ変換をスキップさせることができるようになるので、エナジーコンパクションの低下を抑制し、符号化効率の低減を抑制することができる。
<画像符号化処理の流れ>
次に、画像符号化装置100により実行される各処理の流れの例を説明する。最初に、画像符号化処理の流れの例を、図11のフローチャートを参照して説明する。
画像符号化処理が開始されると、ステップS101において、制御部101は、符号化制御処理を行い、ブロック分割や符号化パラメータの設定等を行う。
ステップS102において、予測部119は、予測処理を行い、最適な予測モードの予測画像等を生成する。例えば、この予測処理において、予測部119は、イントラ予測を行って最適なイントラ予測モードの予測画像等を生成し、インター予測を行って最適なインター予測モードの予測画像等を生成し、それらの中から、コスト関数値等に基づいて最適な予測モードを選択する。
ステップS103において、演算部111は、入力画像と、ステップS102の予測処理により選択された最適なモードの予測画像との差分を演算する。つまり、演算部111は、入力画像と予測画像との予測残差Dを生成する。このようにして求められた予測残差Dは、元の画像データに比べてデータ量が低減される。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
ステップS104において、変換部112は、ステップS103の処理により生成された予測残差Dに対して変換処理を行い、変換係数Coeffを導出する。ステップS104の処理の詳細については後述する。
ステップS105において、量子化部113は、制御部101により算出された量子化パラメータを用いる等して、ステップS104の処理により得られた変換係数Coeffを量子化し、量子化変換係数レベルlevelを導出する。
ステップS106において、逆量子化部115は、ステップS105の処理により生成された量子化変換係数レベルlevelを、そのステップS105の量子化の特性に対応する特性で逆量子化し、変換係数Coeff_IQを導出する。
ステップS107において、逆変換部116は、ステップS106の処理により得られた変換係数Coeff_IQを、ステップS104の変換処理に対応する方法で逆変換し、予測残差D’を導出する。なお、この逆変換処理は、ステップS104の変換処理の逆処理であり、後述する画像復号処理において実行される逆変換処理と同様に実行される。そのため、この逆変換処理の説明は、復号側の説明において行う。
ステップS108において、演算部117は、ステップS107の処理により導出された予測残差D’に、ステップS102の予測処理により得られた予測画像を加算することにより、局所的に復号された復号画像を生成する。
ステップS109において、フレームメモリ118は、ステップS108の処理により得られた、局所的に復号された復号画像を記憶する。
ステップS110において、符号化部114は、ステップS105の処理により得られた量子化変換係数レベルlevelを符号化する。例えば、符号化部114は、画像に関する情報である量子化変換係数レベルlevelを、算術符号化等により符号化し、符号化データを生成する。また、このとき、符号化部114は、各種符号化パラメータ(ヘッダ情報HInfo、予測モード情報Pinfo、変換情報Tinfo)を符号化する。さらに、符号化部114は、量子化変換係数レベルlevelから残差情報RInfoを導出し、その残差情報RInfoを符号化する。符号化部114は、このように生成した各種情報の符号化データをまとめて、ビットストリームとして画像符号化装置100の外部に出力する。このビットストリームは、例えば、伝送路や記録媒体を介して復号側に伝送される。
ステップS110の処理が終了すると、画像符号化処理が終了する。
なお、これらの各処理の処理単位は任意であり、互いに同一でなくてもよい。したがって、各ステップの処理は、適宜、他のステップの処理等と並行して、または、処理順を入れ替えて実行することもできる。
<変換処理の流れ>
次に、図11のステップS104において実行される変換処理の流れの例を、図12のフローチャートを参照して説明する。
変換処理が開始されると、ステップS121において、プライマリ変換部131は、プライマリ変換識別子pt_idxに基づいて、予測残差Dに対するプライマリ変換を行い、プライマリ変換係数Coeff_Pを導出する。
ステップS122において、セカンダリ変換部132(スイッチ148)は、セカンダリ変換識別子st_idxがセカンダリ変換を適用するか否か(st_idx>0)を判定する。セカンダリ変換識別子st_idxが0である(セカンダリ変換のスキップを示す)と判定された場合、セカンダリ変換(ステップS123乃至ステップS134の処理)がスキップされ、変換処理が終了し、処理は図11に戻る。すなわち、セカンダリ変換部132(スイッチ148)は、プライマリ変換係数Coeff_Pを変換係数Coeffとして量子化部113に供給する。
また、ステップS122において、セカンダリ変換識別子st_idxが0より大きい(セカンダリ変換の実行を示す)と判定された場合、処理はステップS123に進む。
ステップS123において、セカンダリ変換選択部145は、セカンダリ変換識別子st_idxにより指定されるセカンダリ変換の行列Rを選択する。
ステップS124において、セカンダリ変換部132は、処理対象の変換ブロックをサブブロックに分割し、未処理のサブブロックを選択する。
ステップS125において、ラスタライズ部141は、スキャン識別子scanIdxで指定されるスキャン方法に基づいて、プライマリ変換係数Coeff_Pを1次元のベクトルX1dに変換する。
ステップS126において、行列演算部142は、1次元のベクトルX1dとセカンダリ変換の行列Rとの行列積を演算し、1次元のベクトルY1dを求める。
ステップS127において、スケーリング部143は、1次元のベクトルY1dのノルムを正規化し、1次元のベクトルZ1dを求める。
ステップS128において、行列化部144は、スキャン識別子scanIdxで指定されるスキャン方法に基づいて、1次元のベクトルZ1dを4×4の行列へ変換し、処理対象のサブブロックのセカンダリ変換係数Coeffを求める。
ステップS129において、量子化部146は、プライマリ変換係数Coeff_Pおよびセカンダリ変換係数Coeffのそれぞれについて、量子化パラメータqp、量子化マトリックスscaling_matrixを参照して量子化し、量子化プライマリ変換係数level_Pと、量子化セカンダリ変換係数level_Sとを導出する。
ステップS130において、非ゼロ係数数判定部147は、サブブロック毎に、量子化プライマリ変換係数level_P、量子化セカンダリ変換係数level_S、および閾値THに基づいて、セカンダリ変換スキップフラグStSkipFlagを上述したように導出する。
ステップS131において、スイッチ148は、ステップS130において導出されたセカンダリ変換スキップフラグStSkipfFlagがセカンダリ変換のスキップを示すか否かを判定する。セカンダリ変換の実行を示す、すなわち、セカンダリ変換スキップフラグStSkipFlagの値が0の場合、処理はステップS132に進む。
ステップS132において、スイッチ148は、ステップS128の処理により得られたセカンダリ変換係数Coeffを出力する(量子化部113に供給する)。ステップS132の処理が終了すると処理はステップS134に進む。
また、ステップS131において、セカンダリ変換のスキップを示す、すなわち、セカンダリ変換スキップフラグStSkipFlagの値が1の場合、処理はステップS133に進む。
ステップS133において、スイッチ148は、ステップS121の処理により得られたプライマリ変換係数Coeff_Pをセカンダリ変換係数Coeffとして出力する(量子化部113に供給する)。ステップS133の処理が終了すると処理はステップS134に進む。
ステップS134において、セカンダリ変換部132は、処理対象の変換ブロックの全てのサブブロックを処理したか否かを判定する。未処理のサブブロックが存在すると判定された場合、処理はステップS124に戻り、それ以降の処理を繰り返す。つまり、処理対象の変換ブロックの各サブブロックについて、ステップS124乃至ステップS134の各処理(セカンダリ変換)が実行される。ステップS134において、全てのサブブロックを処理した(全てのサブブロックのセカンダリ変換の実行またはスキップを行った)と判定された場合、変換処理が終了し、処理は図11に戻る。
なお、変換処理は、実施可能な範囲で、各ステップの処理順の入れ替えや、処理の内容を変更してよい。例えば、ステップS122においてセカンダリ変換識別子st_idx=0であると判定された場合、16×16の単位行列がセカンダリ変換の行列Rとして選択され、ステップS124乃至ステップS134の各処理が実行されるようにしてもよい。
以上のように各処理を実行することにより、サブブロック単位で、セカンダリ変換のスキップ(実行)を制御することができる。従って、非ゼロ係数が疎な残差信号に対して、エナジーコンパクションの低下を抑制することができる。すなわち、符号化効率の低減を抑制することができる。換言するに、符号化効率の低減を抑制しながら、符号化(セカンダリ変換・逆セカンダリ変換)の負荷の増大を抑制することができる。
<画像復号装置>
次に、以上のように符号化された符号化データの復号について説明する。図13は、本技術を適用した画像処理装置の一態様である画像復号装置の構成の一例を示すブロック図である。図13に示される画像復号装置200は、図7の画像符号化装置100に対応する画像復号装置であり、画像符号化装置100が生成した符号化データ(ビットストリーム)を、画像符号化装置100による符号化方法に対応する復号方法で復号する。例えば、画像復号装置200は、HEVCに提案された技術や、JVETにて提案された技術を実装している。
なお、図13においては、処理部やデータの流れ等の主なものを示しており、図13に示されるものが全てとは限らない。つまり、画像復号装置200において、図13においてブロックとして示されていない処理部が存在したり、図13において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
図13に示されるように画像復号装置200は、復号部211、逆量子化部212、逆変換部213、演算部214、フレームメモリ215、および予測部216を有する。画像復号装置200には、例えば伝送媒体や記録媒体等を介して、画像符号化装置100等が生成した符号化データが例えばビットストリーム等として供給される。
復号部211は、供給される符号化データを、その符号化方法に対応する所定の復号方法で復号する。例えば、復号部211は、シンタックステーブルの定義に沿って、供給された符号化データ(ビットストリーム)のビット列から、各シンタックス要素のシンタックス値を復号する。シンタックス要素には、例えば、ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、残差情報Rinfoなどの情報が含まれる。
復号部211は、残差情報Rinfoを参照して、各変換ブロック内の各係数位置の量子化変換係数レベルlevelを導出する。復号部211は、復号して得た予測モード情報Pinfo、量子化変換係数レベルlevel、変換情報Tinfoを各ブロックへ供給する。例えば、復号部211は、予測モード情報Pinfoを予測部216に供給し、量子化変換係数レベルlevelを逆量子化部212に供給し、変換情報Tinfoを逆量子化部212および逆変換部213に供給する。
逆量子化部212は、復号部211から供給される変換情報Tinfoに基づいて、復号部211から供給される量子化変換係数レベルlevelの値をスケーリング(逆量子化)し、逆量子化後の変換係数Coeff_IQを導出する。この逆量子化は、画像符号化装置100の量子化部113(図7)により行われる量子化の逆処理である。なお、逆量子化部115(図7)は、この逆量子化部212と同様の逆量子化を行う。逆量子化部212は、得られた変換係数Coeff_IQを逆変換部213に供給する。
逆変換部213は、復号部211から供給される変換情報Tinfoに基づいて、逆量子化部212より供給される変換係数Coeff_IQを逆変換し、予測残差D’を導出する。この逆変換は、画像符号化装置100の変換部112(図7)により行われる変換処理の逆処理である。なお、逆変換部116は、この逆変換部213と同様の逆変換を行う。この逆変換の詳細については、後述する。逆変換部213は、得られた予測残差D’を演算部214に供給する。
演算部214は、以下の式(24)に示されるように、逆変換部213から供給される予測残差D’とその予測残差D’に対応する予測画像P(予測信号)とを加算し、局所的な復号画像Recを導出する。演算部214は、得られた局所的な復号画像Recを用いてピクチャ単位毎の復号画像を再構築し、得られた復号画像を画像復号装置200の外部に出力する。また、演算部214は、その局所的な復号画像Recをフレームメモリ215にも供給する。
Rec=D’+P
・・・(24)
フレームメモリ215は、演算部214より供給される局所的な復号画像Recを用いてピクチャ単位毎の復号画像を再構築し、フレームメモリ215内のバッファに格納する。フレームメモリ215は、予測部216の予測モード情報Pinfoによって指定される復号画像を参照画像としてバッファより読み出し、予測部216に供給する。また、フレームメモリ215は、その復号画像の生成に係るヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfoなどをフレームメモリ215内のバッファに格納するようにしても良い。
予測部216は、復号部211から供給される予測モード情報PInfoによって指定される、フレームメモリ215に格納された復号画像を参照画像として取得し、その参照画像を用いて、その予測モード情報Pinfoによって指定される予測方法により予測画像Pを生成する。予測部216は、生成した予測画像Pを、演算部214に供給する。
このような画像復号装置200において、逆変換処理することにより画像とその画像の予測画像との差分である予測残差が得られる変換係数に対する逆変換処理のスキップを、サブブロック毎の変換係数の非ゼロ係数の数に基づいて、サブブロック毎に制御する制御部を備えるようにする。つまり、逆変換部213が、逆変換処理することにより画像とその画像の予測画像との差分である予測残差が得られる変換係数に対する逆変換処理のスキップを、サブブロック毎の変換係数の非ゼロ係数の数に基づいて、サブブロック毎に制御するようにする。
<逆変換部>
図14は、図13の逆変換部213の主な構成例を示すブロック図である。図14に示されるように、逆変換部213は、逆セカンダリ変換部231、および逆プライマリ変換部232を有する。
逆セカンダリ変換部231は、逆量子化部212から供給される変換係数Coeff_IQ、すなわち、符号化データが復号され、逆量子化されて得られる変換係数Coeff_IQ(セカンダリ変換係数とも称する)を1次元のベクトルに変換し、その1次元のベクトルに対する行列演算を行い、その行列演算が行われた1次元のベクトルのスケーリングを行い、そのスケーリングされた1次元のベクトルを行列化する変換処理である逆セカンダリ変換を行う。
逆セカンダリ変換部231は、セカンダリ変換の内容に関する情報であるセカンダリ変換識別子st_idxと、変換係数のスキャン方法に関する情報であるスキャン識別子scanIdxとに基づいて、セカンダリ変換係数Coeff_IQに対して逆セカンダリ変換を行い、逆セカンダリ変換後の変換係数Coeff_IS(プライマリ変換係数とも称する)を導出する。つまり、逆セカンダリ変換部231は、セカンダリ変換係数Coeff_IQをプライマリ変換係数Coeff_ISに変換する。逆セカンダリ変換部231は、そのプライマリ変換係数Coeff_ISを、逆プライマリ変換部232に供給する。
なお、逆セカンダリ変換部231は、逆セカンダリ変換をスキップ(省略)し、セカンダリ変換係数Coeff_IQを、プライマリ変換係数Coeff_ISとして、逆プライマリ変換部232に供給することもできる。逆セカンダリ変換部231の詳細については、後述する。
逆プライマリ変換部232は、逆セカンダリ変換部231から供給されるプライマリ変換係数Coeff_ISに対して、例えば逆直交変換等の逆プライマリ変換を実行し、予測残差D’を導出する。すなわち、逆プライマリ変換部232は、プライマリ変換係数Coeff_ISを予測残差D’に変換する。逆プライマリ変換部232は、導出した予測残差D’を演算部214に供給する。
次に、逆セカンダリ変換部231について説明する。図14に示されるように、逆セカンダリ変換部231は、非ゼロ係数数判定部241、スイッチ242、ラスタライズ部243、行列演算部244、スケーリング部245、行列化部246、および逆セカンダリ変換選択部247を有する。
非ゼロ係数数判定部241は、サブブロック単位のセカンダリ変換係数Coeff_IQを入力とする。非ゼロ係数数判定部241は、逆量子化部212から供給されるセカンダリ変換係数Coeff_IQを参照して、サブブロック内の非ゼロ係数の数numSigInSBK(変換係数の非ゼロ係数数とも称する)を、例えば、以下の式(25)のように導出する。なお、式(25)において、セカンダリ変換係数Coeff_IQ(i,j)の(i,j)は、サブブロック内の座標を表し、i=0…3, j=0…3である。また、演算子abs(X)は、入力値Xの絶対値を返す演算子である。
numSigInSBK = Σ{abs(Coeff_IQ(i,j))>0 ? 1 : 0}
・・・(25)
なお、セカンダリ変換係数Coeff_IQを参照せずに、非ゼロ係数有無フラグsig_coeff_flagに基づいて、変換係数の非ゼロ係数数numSigInSBKを導出するようにしてもよい。
そして、非ゼロ係数数判定部241は、変換係数の非ゼロ係数数numSigInSBKが所定の閾値TH以下であるか否かを判定し、以下の式(26)に示されるように、その判定結果に基づいて、セカンダリ変換スキップフラグStSkipFlagを導出する。
StSkipFlag = numSigInSBK <= TH ? 1 : 0
・・・(26)
この閾値THは、例えば、2であってもよいし、0乃至16までのいずれかの値であってもよい。また、閾値THは、VPS/SPS/PPS/スライスヘッダSHなどのヘッダ情報において外部(例えば符号化側や制御側等)から通知されるようにしてもよい。また、閾値THは、符号化側(例えば画像符号化装置100)と復号側(例えば、後述する画像復号装置200)との間で予め取り決めておき、符号化側から復号側への通知(閾値THの、符号化側から復号側への伝送)を省略するようにしてもよい。
式(26)において、例えば、変換係数の非ゼロ係数数numSigInSBKの値が閾値TH以下の場合、セカンダリ変換スキップフラグStSkipFlagの値が1に設定される。また、例えば、変換係数の非ゼロ係数数numSigInSBKの値が、閾値THより大きい場合、セカンダリ変換スキップフラグStSkipFlagの値が0に設定される。
非ゼロ係数数判定部241は、導出したStSkipFlagをスイッチ242に供給する。
スイッチ242は、サブブロック単位のセカンダリ変換係数Coeff_IQ、およびセカンダリ変換スキップフラグStSkipfFlagを入力とする。スイッチ242は、非ゼロ係数数判定部241から供給されるセカンダリ変換スキップフラグStSkipFlagに応じて、逆セカンダリ変換のスキップを制御する。
例えば、セカンダリ変換スキップフラグStSkipFlagの値が0の場合、すなわち、セカンダリ変換スキップStSkipFlagにおいて、セカンダリ変換の実行が示されている場合、スイッチ242は、セカンダリ変換を実行させる。すなわち、スイッチ242は、逆量子化部212から供給されるセカンダリ変換係数Coeff_IQをラスタライズ部243に供給する。また、例えば、セカンダリ変換スキップフラグStSkipFlagの値が1の場合、すなわち、セカンダリ変換スキップStSkipFlagにおいて、逆セカンダリ変換のスキップが示されている場合、スイッチ242は、逆セカンダリ変換をスキップさせる。すなわち、スイッチ242は、逆量子化部212から供給されるセカンダリ変換係数Coeff_IQをプライマリ変換係数Coeff_ISとして、逆プライマリ変換部232に供給する。
ラスタライズ部243は、復号部211から供給されるスキャン識別子scanIdxによって指定される変換係数のスキャン方法に基づいて、サブブロック(4×4サブブロック)毎に、スイッチ242から供給される変換係数Coeff_IQを1次元のベクトルX1dに変換する。ラスタライズ部243は、得られた1次元のベクトルX1dを行列演算部244に供給する。
逆セカンダリ変換選択部247は、復号部211から供給される、逆セカンダリ変換の内容に関する情報であるセカンダリ変換識別子st_idxにより指定される逆セカンダリ変換の行列IR(=RT)を、逆セカンダリ変換選択部247の内部メモリ(不図示)より読み出し、行列演算部244に供給する。例えば、逆セカンダリ変換選択部247は、あるセカンダリ変換識別子st_idxの値のとき、逆セカンダリ変換の行列IRとして、図10に示される16×16の行列Rの転置行列RTを読み出し、それを行列演算部244に供給する。
なお、逆セカンダリ変換選択部247が、例えば、復号部211から供給されるセカンダリ変換識別子st_idxやイントラ予測モード情報IPinfo(例えば、イントラ予測モード番号)に応じて、逆セカンダリ変換の行列IR(=RT)を選択するようにしてもよい。また、イントラ予測モード情報IPinfoの代わりに、動き予測情報MVinfoとセカンダリ変換識別子st_idxに応じて、逆変換IRが選択されるようにしてもよい。
行列演算部244は、サブブロック(4×4サブブロック)毎に、1次元のベクトルX1dおよび逆セカンダリ変換の行列IR(=RT)の行列を用いて、以下の式(27)に示されるような行列演算を行い、その結果として1次元のベクトルY1dを導出する。ここで、演算子"・"は、行列同士の内積(行列積)を行う操作を表し、演算子"T"は、転置行列の操作を表す。行列演算部244は、導出した1次元のベクトルY1dをスケーリング部245に供給する。
Y1d
T=IR・X1d
T=RT・X1d
T
・・・(27)
スケーリング部245は、サブブロック(4×4サブブロック)毎に、行列演算部244から供給される1次元のベクトルY1dのノルムを正規化するために、以下の式(28)に示されるよなN(Nは自然数)ビットのビットシフト演算を1次元のベクトルY1dのすべての要素に対して行い、ビットシフト後の1次元のベクトルZ1dを求める。
Z1d=(Y1d)>>N
・・・(28)
なお、以下の式(29)に示されるように、Nビットのシフト演算前に、オフセットとして、1<<(N-1)の値が、1次元のベクトルZ1dの各要素に加算されるようにしてもよい。なお、式(29)において、ベクトルEは、すべての要素の値が1の1次元のベクトルである。
Z1d=(Y1d+((N-1)<<1)・E)>>N
・・・(29)
例えば、逆セカンダリ変換の行列IR(=RT)の行列は、図10に示されるセカンダリ変換の行列Rの転置行列であり、8ビットスケーリングされた行列であるため、スケーリング部245において、ノルムの正規化に用いられるNの値は8である。一般的に、逆セカンダリ変換の行列IR(=RT)が、Nビットスケーリングされている場合、ノルム正規化のビットシフト量は、Nビットである。スケーリング部245は、以上のようにして得られたノルム正規化後の1次元のベクトルZ1dを行列化部246に供給する。
行列化部246は、サブブロック(4×4サブブロック)毎に、ノルム正規化後の1次元のベクトルZ1dおよびスキャン識別子scanIdxを入力とし、復号部211から供給されるスキャン識別子scanIdxによって指定されるスキャン方法に基づいて、スケーリング部245から供給される1次元のベクトルZ1dを4×4行列のプライマリ変換係数Coeff_ISに変換する。行列化部246は、得られたプライマリ変換係数Coeff_ISを逆プライマリ変換部232に供給する。
以上のように、非ゼロ係数数判定部241がサブブロック毎の非ゼロ係数の数に基づいて、セカンダリ変換スキップフラグStSkipFlagを設定し、スイッチ242が、そのセカンダリ変換スキップフラグStSkipFlagに基づいて、セカンダリ変換のスキップを制御する。このようにすることにより、非ゼロ係数が疎なサブブロックに対するセカンダリ変換をスキップさせることができるようになるので、エナジーコンパクションの低下を抑制し、符号化効率の低減を抑制することができる。
<画像復号処理の流れ>
次に、以上のような画像復号装置200により実行される各処理の流れについて説明する。最初に、図15のフローチャートを参照して、画像復号処理の流れの例を説明する。
画像復号処理が開始されると、ステップS201において、復号部211は、画像復号装置200に供給されるビットストリーム(符号化データ)を復号し、ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、残差情報Rinfo、量子化変換係数レベルlevel等の情報を得る。
ステップS202において、逆量子化部212は、ステップS201の処理により得られた量子化変換係数レベルlevelを逆量子化して変換係数Coeff_IQを導出する。この逆量子化は、画像符号化処理のステップS105(図11)において行われる量子化の逆処理であり、画像符号化処理のステップS106(図11)において行われる逆量子化と同様の処理である。
ステップS203において、逆変換部213は、ステップS202の処理により得られた変換係数Coeff_IQを逆変換し、予測残差D'を導出する。この逆変換は、画像符号化処理のステップS104(図11)において行われる変換処理の逆処理であり、画像符号化処理のステップS107(図11)において行われる逆変換と同様の処理である。
ステップS204において、予測部216は、予測モード情報PInfoに基づいて、符号化の際の予測と同一の予測モードで予測を行い、予測画像生成する。
ステップS205において、演算部214は、ステップS203の処理により得られた予測残差D’に、ステップS204の処理により得られた予測画像を加算し、復号画像を得る。
ステップS205の処理が終了すると、画像復号処理が終了される。
<逆変換処理の流れ>
次に、図15のステップS203において実行される逆変換処理の流れの例を、図16のフローチャートを参照して説明する。
逆変換処理が開始されると、ステップS221において、逆セカンダリ変換部231(スイッチ242)は、セカンダリ変換識別子st_idxが逆セカンダリ変換を適用するか否か(st_idx>0)を判定する。セカンダリ変換識別子st_idxが0である(セカンダリ変換識別子st_idxが逆セカンダリ変換のスキップを示す)と判定された場合、逆セカンダリ変換(ステップS222乃至ステップS230の処理)がスキップされ、処理はステップS231に進む。つまり、逆セカンダリ変換部231(スイッチ242)は、図15のステップS202の処理により得られたセカンダリ変換係数Coeff_IQをプライマリ変換係数Coeff_ISとして、逆プライマリ変換部232に供給する。
また、ステップS221において、セカンダリ変換識別子st_idxが0より大きい(セカンダリ変換識別子st_idxが逆セカンダリ変換の実行を示す)と判定された場合、処理はステップS222に進む。
ステップS222において、逆セカンダリ変換選択部247は、セカンダリ変換識別子st_idxにより指定される逆セカンダリ変換の行列IRを選択する。
ステップS223において、逆セカンダリ変換部231は、処理対象の変換ブロックに含まれる未処理のサブブロックを選択する。
ステップS224において、非ゼロ係数数判定部241は、上述したように、図15のステップS202の処理により得られたサブブロック単位のセカンダリ変換係数Coeff_IQに基づいて変換係数の非ゼロ係数数numSigInSBKを導出し、さらにその変換係数の非ゼロ係数数numSigInSBKおよび閾値THを用いてセカンダリ変換スキップフラグStSkipFlagを導出する。
ステップS225において、スイッチ242は、ステップS224の処理により得られたセカンダリ変換スキップフラグStSkipFlagが逆セカンダリ変換のスキップを示すか否かを判定する。セカンダリ変換の実行を示す、すなわち、セカンダリ変換スキップフラグStSkipFlagの値が0であると判定された場合、処理はステップS226に進む。
ステップS226において、ラスタライズ部243は、スキャン識別子scanIdxにより指定されるスキャン方法に基づいて、図15のステップS202の処理により得られたセカンダリ変換係数Coeff_IQを1次元のベクトルX1dに変換する。
ステップS227において、行列演算部244は、その1次元のベクトルX1dと、ステップS222の処理により得られた逆セカンダリ変換の行列IRとの行列積を演算し、1次元のベクトルY1dを求める。
ステップS228において、スケーリング部245は、その1次元のベクトルY1dのノルムを正規化し、1次元のベクトルZ1dを求める。
ステップS229において、行列化部246は、スキャン識別子scanIdxにより指定されるスキャン方法に基づいて、その1次元のベクトルZ1dを4×4の行列へ変換し、処理対象のサブブロックのプライマリ変換係数Coeff_ISを求める。ステップS229の処理が終了すると、処理はステップS230に進む。また、ステップS225において、逆セカンダリ変換のスキップを示す、すなわち、セカンダリ変換スキップフラグStSkipFlagの値が1の場合、処理はステップS230に進む。
ステップS230において、逆セカンダリ変換部231は、処理対象の変換ブロックの全てのサブブロックを処理したか否かを判定する。未処理のサブブロックが存在すると判定された場合、処理はステップS223に戻り、それ以降の処理を繰り返す。つまり、処理対象の変換ブロックの各サブブロックについて、ステップS223乃至ステップS230の各処理(逆セカンダリ変換)が実行される。ステップS230において、全てのサブブロックを処理した(全てのサブブロックの逆セカンダリ変換の実行またはスキップを行った)と判定された場合、処理はステップS231に進む。
ステップS231において、逆プライマリ変換部232は、プライマリ変換識別子pt_idxに基づいて、プライマリ変換係数Coeff_ISに対する逆プライマリ変換を行い、予測残差D’を導出する。この予測残差D’は、演算部214に供給される。
ステップS231の処理が終了すると、逆変換処理が終了し、処理は図15に戻る。
なお、以上の逆変換処理は、実施可能な範囲で、各ステップの処理順の入れ替えや、処理の内容を変更してよい。例えば、ステップS221においてセカンダリ変換識別子st_idxが0であると判定された場合、16×16の単位行列が逆セカンダリ変換の行列IRとして選択され、ステップS222乃至ステップS230の各処理が実行されるようにしてもよい。
以上のように各処理を実行することにより、サブブロック単位で、逆セカンダリ変換のスキップ(実行)を制御することができる。従って、非ゼロ係数が疎な残差信号に対して、エナジーコンパクションの低下を抑制することができる。すなわち、符号化効率の低減を抑制することができる。換言するに、符号化効率の低減を抑制しながら、復号(逆セカンダリ変換)の負荷の増大を抑制することができる。
なお、以上においては、(逆)セカンダリ変換のスキップをサブブロック毎に制御するように説明したが、サブブロック毎に行うスキップの制御は、(逆)セカンダリ変換だけでなく、任意の変換処理に適用することができる。
<2.第2の実施の形態>
<スキャン方法を用いたセカンダリ変換の選択>
ところで、非特許文献1および非特許文献2のいずれに記載の方法においても、セカンダリ変換は、イントラ予測モードのクラス数と各クラスに対応するセカンダリ変換の数だけ、セカンダリ変換の行列を有していた。そのため、セカンダリ変換の行列を保持するために巨大なメモリサイズが必要であった。例えば、非特許文献1に記載の方法の場合、イントラ予測モードのクラス数が12であり、各クラスに対するセカンダリ変換の数が 3であるので、12*3 = 36の行列が存在していた。また、非特許文献2に記載の方法の場合、イントラ予測モードのクラス数が35であり、各クラスに対するセカンダリ変換の数=が5であるので、35*5 = 175の行列が存在していた。
したがって、例えば、各行列の要素を9bit精度で保持する場合、非特許文献1に記載の方法の場合、以下の式(30)に示されるようなメモリサイズが必要になることになる。また、非特許文献2に記載の方法の場合、以下の式(31)に示されるようなメモリサイズが必要になることになる。
メモリサイズ = 9bit * 16*16 * 36 = 829944 (bits) = 10368 (bytes) = 10.125 (KB)
・・・(30)
メモリサイズ = 9bit * 16*16 * 175 = 403200 (bits) = 50400 (bytes) = 49.21875 (KB)
・・・(31)
このように、保持する(逆)セカンダリ変換の行列のデータ量が増大すると、符号化・復号の負荷が増大するおそれがあった。また、必要とするメモリサイズも増大するため、コストが増大するおそれがあった。
そこで、セカンダリ変換の行列Rや逆セカンダリ変換の行列IRを、セカンダリ変換識別子とスキャン識別子とに基づいて設定するようにする。すなわち、イントラ予測モードの方向と、スキャン方法とが対応している点に着目し、イントラ予測モードのクラス分類を、スキャン方法に関する情報であるスキャン識別子(scanIdx)に置き換える。図17には、イントラ予測モードとスキャン識別子(scanIdx)との対応関係の例が示されている。
スキャン識別子(scanIdx)の各値に対応するセカンダリ変換は5種類である。これはセカンダリ変換識別子(st_idx)毎に割り当てるためである。したがって、この場合、セカンダリ変換の総数は、3×5 = 15となる。つまり、上述の非特許文献1や非特許文献2に記載の方法に比べてセカンダリ変換の数を低減することができる。そして、9bit精度の場合、全セカンダリ変換の保持に必要なメモリサイズは、以下の式(32)のようになる。
メモリサイズ = 9bit * 16 * 16 = 15 = 34560 (bits) = 4320 (bytes) = 4.21875 (KB)
・・・(32)
したがって、上述の式(30)や(31)の場合(非特許文献1や非特許文献2に記載の方法の場合)と比べて、セカンダリ変換の行列のデータ量を大幅に低減することができる。これにより、符号化・復号の負荷の増大を抑制し、(逆)セカンダリ変換の行列の保持に必要なメモリサイズの増大を抑制することができる。
<変換部>
この場合も画像符号化装置100は、第1の実施の形態の場合と基本的に同様の構成を有する。ただし、この場合の画像符号化装置100は、変換係数に対する変換処理の行列を、その変換処理の内容とスキャン方法とに基づいて設定する設定部と、画像とその画像の予測画像との差分である予測残差が変換処理されて得られる変換係数を1次元のベクトルに変換するラスタライズ部と、その設定部により設定された行列を用いて、その1次元のベクトルに対する行列演算を行う行列演算部と、その行列演算が行われた1次元のベクトルに対してスケーリングを行うスケーリング部と、そのスケーリングされた1次元のベクトルを行列化する行列化部とを備える。つまり、この場合の変換部112は、変換係数に対する変換処理の行列を、その変換処理の内容とスキャン方法とに基づいて設定し、画像とその画像の予測画像との差分である予測残差が変換処理されて得られる変換係数を1次元のベクトルに変換し、その設定された行列を用いて、その1次元のベクトルに対する行列演算を行い、その行列演算が行われた1次元のベクトルに対してスケーリングを行い、そのスケーリングされた1次元のベクトルを行列化するようにする。
図18は、この場合の変換部112の主な構成例を示すブロック図である。図18に示されるように、この場合も変換部112は、基本的に第1の実施の形態の場合(図8)と同様の構成を有する。ただし、この場合のセカンダリ変換部132は、量子化部146乃至スイッチ148を省略することができ、また、セカンダリ変換選択部145の代わりにセカンダリ変換選択部301を有する。
セカンダリ変換選択部301は、セカンダリ変換識別子st_idx、及びスキャン識別子scanIdxを入力とする。セカンダリ変換選択部301は、入力されたセカンダリ変換識別子st_idxおよびスキャン識別子scanIdxに基づいて、セカンダリ変換の行列Rを選択し、行列演算部142に供給する。
<セカンダリ変換選択部>
図19は、セカンダリ変換選択部301の主な構成例を示すブロック図である。図19に示されるように、セカンダリ変換選択部301は、セカンダリ変換導出部311およびセカンダリ変換保持部312を有する。
セカンダリ変換導出部311は、セカンダリ変換識別子st_idxおよびスキャン識別子scanIdxを入力とする。セカンダリ変換導出部311は、入力されたセカンダリ変換識別子st_idxおよびスキャン識別子scanIdxに基づいて、セカンダリ変換保持部312に格納されているセカンダリ変換行列テーブルLIST_FwdST[][]より、該当するセカンダリ変換の行列Rを以下の式(33)のように読み出し、外部へ出力する。ここで、逆セカンダリ変換行列テーブルLIST_FwdST[][]には、スキャン識別子scanIdxとセカンダリ変換識別子st_idx毎に対応するセカンダリ変換の行列Rが格納されている。
R = LIST_FwdST[ scanIdx ][ st_idx ]
・・・(33)
セカンダリ変換保持部312は、スキャン識別子scanIdxとセカンダリ変換識別子st_idx毎に対応するセカンダリ変換の行列Rが格納されたセカンダリ変換行列テーブルLIST_FwdST[][]を保持している。セカンダリ変換導出部311の指示に基づいて、該当するセカンダリ変換の行列Rをセカンダリ変換導出部311に供給する。
<変換処理の流れ>
次に、画像符号化装置100により実行される各処理の流れの例を説明する。この場合画像符号化装置100は、画像符号化処理を、第1の実施の形態の場合(図11)と基本的に同様に行う。この場合の変換処理の流れの例を、図20のフローチャートを参照して説明する。
変換処理が開始されると、ステップS301およびステップS302の各処理は、図12のステップS121およびステップS122の各処理と同様に実行される。つまり、セカンダリ変換識別子st_idxが0である(セカンダリ変換のスキップを示す)と判定された場合、セカンダリ変換(ステップS303乃至ステップS309の処理)がスキップされ、変換処理が終了し、処理は図11に戻る。すなわち、セカンダリ変換部132は、プライマリ変換係数Coeff_Pを変換係数Coeffとして量子化部113に供給する。
また、ステップS302において、セカンダリ変換識別子st_idxが0より大きい(セカンダリ変換の実行を示す)と判定された場合、処理はステップS303に進む。
ステップS303において、セカンダリ変換選択部301は、セカンダリ変換識別子st_idxとスキャン識別子scanIdxとに対応するセカンダリ変換の行列Rを選択する。つまり、セカンダリ変換導出部311は、セカンダリ変換保持部312に保持されているセカンダリ変換行列テーブルよりセカンダリ変換識別子st_idxとスキャン識別子scanIdxとに対応するセカンダリ変換の行列Rを読み出して選択する。
ステップS304乃至ステップS309の各処理は、図12のステップS124乃至ステップS128、並びに、ステップS134の各処理と同様に実行される。つまり、ステップS304乃至ステップS309の各処理がサブブロック毎に行われることにより、サブブロック毎にセカンダリ変換が行われる。そして、ステップS309において、全てのサブブロックを処理したと判定された場合、変換処理が終了し、処理は図11に戻る。
なお、変換処理は、実施可能な範囲で、各ステップの処理順の入れ替えや、処理の内容を変更してよい。例えば、ステップS302においてセカンダリ変換識別子st_idx=0であると判定された場合、16×16の単位行列がセカンダリ変換の行列Rとして選択され、ステップS304乃至ステップS309の各処理が実行されるようにしてもよい。
以上のように各処理を実行することにより、セカンダリ変換識別子st_idxおよびスキャン識別子scanIdxに基づいてセカンダリ変換の行列Rを選択することができる。したがって、セカンダリ変換の行列のデータ量を大幅に低減することができる。これにより、符号化の負荷の増大を抑制し、セカンダリ変換の行列の保持に必要なメモリサイズの増大を抑制することができる。
<逆変換部>
次に画像復号装置200について説明する。この場合も画像復号装置200は、第1の実施の形態の場合と基本的に同様の構成を有する。ただし、この場合の画像復号装置200は、変換係数に対する逆変換処理の行列を、その逆変換処理の内容とスキャン方法とに基づいて設定する設定部と、逆変換処理することにより画像とその画像の予測画像との差分である予測残差が得られる変換係数を1次元のベクトルに変換するラスタライズ部と、その設定部により設定された行列を用いて、その1次元のベクトルに対する行列演算を行う行列演算部と、その行列演算が行われた1次元のベクトルに対してスケーリングを行うスケーリング部と、そのスケーリングされた1次元のベクトルを行列化する行列化部とを備える。つまり、逆変換部213は、変換係数に対する逆変換処理の行列を、その逆変換処理の内容とスキャン方法とに基づいて設定し、逆変換処理することにより画像とその画像の予測画像との差分である予測残差が得られる変換係数を1次元のベクトルに変換し、その設定された行列を用いて、その1次元のベクトルに対する行列演算を行い、その行列演算が行われた1次元のベクトルに対してスケーリングを行い、そのスケーリングされた1次元のベクトルを行列化する。
図21は、この場合の逆変換部213の主な構成例を示すブロック図である。図21に示されるように、この場合も逆変換部213は、基本的に第1の実施の形態の場合(図14)と同様の構成を有する。ただし、この場合の逆セカンダリ変換部231は、非ゼロ係数数判定部241およびスイッチ242を省略することができ、また、逆セカンダリ変換選択部247の代わりに逆セカンダリ変換選択部321を有する。
逆セカンダリ変換選択部321は、セカンダリ変換識別子st_idxおよびスキャン識別子scanIdxを入力とする。逆セカンダリ変換選択部321は、入力されたセカンダリ変換識別子st_idxおよびスキャン識別子scanIdxに基づいて、逆セカンダリ変換の行列IRを選択し、行列演算部244に供給する。
<逆セカンダリ変換選択部>
図22は、逆セカンダリ変換選択部321の主な構成例を示すブロック図である。図22に示されるように、逆セカンダリ変換選択部321は、逆セカンダリ変換導出部331および逆セカンダリ変換保持部332を有する。
逆セカンダリ変換導出部331は、セカンダリ変換識別子st_idxおよびスキャン識別子scanIdxを入力とする。逆セカンダリ変換導出部331は、入力されたセカンダリ変換識別子st_idxおよびスキャン識別子scanIdxに基づいて、逆セカンダリ変換保持部332に格納されている逆セカンダリ変換行列テーブルLIST_InvST[][]より、該当する逆セカンダリ変換の行列IR(=RT)を以下の式(34)のように読み出し、外部へ出力する。ここで、逆セカンダリ変換行列テーブルLIST_InvST[][]には、スキャン識別子scanIdxとセカンダリ変換識別子st_idx毎に対応する逆セカンダリ変換の行列IRが格納されている。
IR = LIST_InvST[ scanIdx ][ st_idx ]
・・・(34)
逆セカンダリ変換保持部332は、スキャン識別子scanIdxとセカンダリ変換識別子st_idx毎に対応する逆セカンダリ変換の行列IRが格納された逆セカンダリ変換行列テーブルLIST_InvST[][]を保持している。逆セカンダリ変換保持部332は、逆セカンダリ変換導出部331の指示に基づいて、該当する逆セカンダリ変換の行列IR(=RT)を逆セカンダリ変換導出部331に供給する。
<逆変換処理の流れ>
次に、画像復号装置200により実行される各処理の流れの例を説明する。この場合画像復号装置200は、画像復号処理を、第1の実施の形態の場合(図15)と基本的に同様に行う。この場合の逆変換処理の流れの例を、図23のフローチャートを参照して説明する。
逆変換処理が開始されると、ステップS321において、逆セカンダリ変換部231は、セカンダリ変換識別子st_idxが逆セカンダリ変換を適用するか否か(st_idx>0)を判定する。セカンダリ変換識別子st_idxが0である(セカンダリ変換識別子st_idxが逆セカンダリ変換のスキップを示す)と判定された場合、逆セカンダリ変換(ステップS322乃至ステップS328の処理)がスキップされ、処理はステップS329に進む。つまり、逆セカンダリ変換部231は、図15のステップS202の処理により得られたセカンダリ変換係数Coeff_IQをプライマリ変換係数Coeff_ISとして、逆プライマリ変換部232に供給する。
また、ステップS321において、セカンダリ変換識別子st_idxが0より大きい(セカンダリ変換識別子st_idxが逆セカンダリ変換の実行を示す)と判定された場合、処理はステップS322に進む。
ステップS322において、逆セカンダリ変換選択部321は、セカンダリ変換識別子st_idxおよびスキャン識別子scanIdxに対応する逆セカンダリ変換の行列IRを選択する。つまり、逆セカンダリ変換導出部331は、逆セカンダリ変換保持部332に保持されている逆セカンダリ変換行列テーブルよりセカンダリ変換識別子st_idxとスキャン識別子scanIdxとに対応する逆セカンダリ変換の行列IRを読み出して選択する。
ステップS323において、逆セカンダリ変換部231は、処理対象の変換ブロックに含まれる未処理のサブブロックを選択する。
ステップS324乃至ステップS328の各処理は、図16のステップS226乃至ステップS230の各処理と同様に実行される。つまり、ステップS323乃至ステップS328の各処理がサブブロック毎に行われることにより、サブブロック毎にセカンダリ変換が行われる。そして、ステップS328において、全てのサブブロックを処理したと判定された場合、処理はステップS329に進む。
ステップS329において、逆プライマリ変換部232は、プライマリ変換識別子pt_idxに基づいて、プライマリ変換係数Coeff_ISに対する逆プライマリ変換を行い、予測残差D'を導出する。この予測残差D'は、演算部214に供給される。
ステップS231の処理が終了すると、逆変換処理が終了し、処理は図15に戻る。
なお、以上の逆変換処理は、実施可能な範囲で、各ステップの処理順の入れ替えや、処理の内容を変更してよい。例えば、ステップS321においてセカンダリ変換識別子st_idxが0であると判定された場合、16×16の単位行列が逆セカンダリ変換の行列IRとして選択され、ステップS323乃至ステップS328の各処理が実行されるようにしてもよい。
以上のように各処理を実行することにより、セカンダリ変換識別子st_idxおよびスキャン識別子scanIdxに基づいて逆セカンダリ変換の行列IRを選択することができる。したがって、逆セカンダリ変換の行列のデータ量を大幅に低減することができる。これにより、符号化・復号の負荷の増大を抑制し、(逆)セカンダリ変換の行列の保持に必要なメモリサイズの増大を抑制することができる。
<3.第3の実施の形態>
<帯域制限>
非特許文献1には、変換ブロックサイズが64×64である場合、予測残差に対して1以上の直交変換を行った後に、左上の32×32の低周波成分以外の高周波数成分を強制的に0にするように帯域制限を行うことにより、デコーダの計算複雑度や実装コストを低減することが記載されている。
図24は、非特許文献1に記載の方法で、予測残差Dに対して、プライマリ変換、セカンダリ変換、および帯域制限を行う変換部の主な構成例を示すブロック図である。図24に示されるように、変換部400は、スイッチ401、プライマリ変換部402、セカンダリ変換部403、および帯域制限部404を有する。
スイッチ401には、変換スキップフラグts_flag、変換量子化バイパスフラグtransquant_bypass_flag、および予測残差Dが入力される。変換スキップフラグts_flagは、対象とするデータ単位において、(逆)プライマリ変換および(逆)セカンダリ変換をスキップするか否かを示す情報である。例えば、この変換スキップフラグts_flagが1(真)である場合、(逆)プライマリ変換および(逆)セカンダリ変換がスキップされる。また、変換スキップフラグts_flagが0(偽)である場合、(逆)プライマリ変換および(逆)セカンダリ変換が実行される。
また、変換量子化バイパスフラグtransquant_bypass_flagは、対象とするデータ単位において、(逆)プライマリ変換、(逆)セカンダリ変換、および(逆)量子化をスキップ(バイパス)するか否かを示す情報である。例えば、この変換量子化バイパスフラグtransquant_bypass _flagが1(真)である場合、(逆)プライマリ変換、(逆)セカンダリ変換、および(逆)量子化をがバイパスされる。また、変換量子化バイパスフラグtransquant_bypass _flagが0(偽)である場合、(逆)プライマリ変換、(逆)セカンダリ変換、および(逆)量子化がバイパスされない。
スイッチ401は、変換スキップフラグts_flagと変換量子化バイパスフラグtransquant_bypass_flagに基づいて、予測残差Dに対するプライマリ変換およびセカンダリ変換のスキップを制御する。
具体的には、変換スキップフラグts_flagまたは変換量子化バイパスフラグtransquant_bypass_flagが0である場合、スイッチ401は、予測残差Dをプライマリ変換部402に供給することにより、プライマリ変換およびセカンダリ変換を実行させる。一方、変換スキップフラグts_flagまたは変換量子化バイパスフラグtransquant_bypass_flagが1である場合、スイッチ401は、予測残差Dをセカンダリ変換係数Coeffとして帯域制限部404に供給することにより、プライマリ変換およびセカンダリ変換をスキップさせる。
プライマリ変換部402は、図8のプライマリ変換部131と同様に、プライマリ変換識別子pt_idxに基づいて予測残差Dに対するプライマリ変換を行い、プライマリ変換係数Coeff_Pを導出する。プライマリ変換識別子pt_idxは、対象とするデータ単位において、垂直方向および水平方向の(逆)プライマリ変換にどの(逆)プライマリ変換を適用するかを示す識別子である(例えば、JVET-B1001、2.5.1 Adaptive multiple Core transformを参照。JEM2ではemt_idxとも称する)。プライマリ変換部402は、プライマリ変換係数Coeff_Pをセカンダリ変換部403に供給する。
セカンダリ変換部403は、セカンダリ変換識別子st_idxに基づいて、プライマリ変換部402から供給されるプライマリ変換係数Coeff_Pに対して、非特許文献1に記載の方法でセカンダリ変換を行い、セカンダリ変換係数Coeffを導出する。セカンダリ変換部403は、セカンダリ変換係数Coeffを帯域制限部404に供給する。
帯域制限部404は、処理対象変換ブロックのブロックサイズTBSizeが64×64である場合、スイッチ401またはセカンダリ変換部403から供給されるセカンダリ変換係数Coeffに対して高周波成分を0にするように帯域制限を行い、帯域制限後のセカンダリ変換係数Coeff´を導出する。一方、帯域制限部404は、処理対象変換ブロックのブロックサイズTBSizeが64×64ではない場合、セカンダリ変換係数Coeffをそのまま帯域制限後のセカンダリ変換係数Coeff´とする。帯域制限部404は、帯域制限後のセカンダリ変換係数Coeff´を出力する。
以上のように、図24の変換部400では、プライマリ変換およびセカンダリ変換がスキップされる場合であっても、ブロックサイズTBSizeが64×64である場合、帯域制限(ローパスフィルタ処理)が行われる。しかしながら、プライマリ変換およびセカンダリ変換がスキップされる場合、帯域制限部404に入力されるセカンダリ変換係数Coeffは、予測残差Dである。従って、帯域制限部404は、予測残差Dに対して帯域制限を行うことになり、帯域制限により歪みが増大する。
例えば、64×64の変換ブロックの予測残差Dが図25のAに示す64×64の画像である場合、プライマリ変換およびセカンダリ変換がスキップされると、帯域制限部404には、図25のAに示す64×64の画像がセカンダリ変換係数Coeffとして入力される。従って、帯域制限部404が、高周波成分として変換ブロックの左上の32×32の変換係数以外の変換係数を0にするように帯域制限を行うと、帯域制限後のセカンダリ変換係数Coeff´は、図25のBに示す64×64の画像になる。よって、帯域制限後のセカンダリ変換係数Coeff´では歪みが増大する。その結果、符号化効率が低下する。また、ロスレス符号化を目的として変換量子化バイパスを行うにもかかわらず、ロスレス符号化を行うことができない。
なお、図25において、白色の領域は画素値が0である領域であり、黒色の領域は画素値が255である領域である。
<変換スキップまたは変換量子化バイパス時の帯域制限の禁止>
第3の実施の形態では、セカンダリ変換係数Coeffに対する帯域制限を、変換スキップフラグts_flagおよび変換量子化バイパスフラグtransquant_bypass_flagに基づいて制御するようにする。また、逆量子化することにより得られるセカンダリ変換係数Coeff_IQに対する帯域制限を、変換スキップフラグts_flagおよび変換量子化バイパスフラグtransquant_bypass_flagに基づいて制御するようにする。具体的には、変換スキップフラグts_flagまたは変換量子化バイパスフラグtransquant_bypass_flagが1である場合、(逆)プライマリ変換、(逆)セカンダリ変換、および帯域制限をスキップするようにする。
このようにすることにより、予測残差Dであるセカンダリ変換係数Coeff(Coeff_IQ)、即ち画素領域のセカンダリ変換係数に対して帯域制限を適用することが禁止されので、歪の増大が抑制される。その結果、符号化効率の低減を抑制することができる。また、変換量子化バイパスを行うことにより、ロスレス符号化を行うことができる。
<画像符号化装置>
本技術を適用した画像処理装置としての画像符号化装置の第3の実施の形態の構成は、変換情報Tinfo、変換部、および逆変換部の構成を除いて、図7の構成と同一である。従って、以下では、変換情報Tinfo、変換部、および逆変換部についてのみ説明する。
第3の実施の形態では、変換情報Tinfoには、変換スキップフラグts_flag、変換量子化バイパスフラグtransquant_bypass_flag、プライマリ変換識別子pt_idx、セカンダリ変換識別子st_idx、およびブロックサイズTBSizeが含まれる。
また、第3の実施の形態における逆変換部により行われる逆変換は、変換部により行われる変換の逆処理であり、後述する画像復号装置において行われる逆変換と同様の処理である。したがって、この逆変換については、画像復号装置に関する説明において後述する。
<変換部>
図26は、本技術を適用した画像処理装置としての画像符号化装置の第3の実施の形態における変換部の主な構成例を示すブロック図である。
図26に示す構成のうち、図24の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
図26の変換部420の構成は、スイッチ401、帯域制限部404の代わりに、スイッチ421、帯域制限部424が設けられる点が、図24の変換部400の構成と異なる。
変換部420のスイッチ421には、変換スキップフラグts_flagと変換量子化バイパスフラグtransquant_bypass_flagが制御部101から供給され、予測残差Dが演算部111から供給される。スイッチ421は、変換スキップフラグts_flagおよび変換量子化バイパスフラグtransquant_bypass_flagに基づいて、予測残差Dに対するプライマリ変換、セカンダリ変換、および帯域制限のスキップを制御する。
具体的には、変換スキップフラグts_flagまたは変換量子化バイパスフラグtransquant_bypass_flagが0である場合、スイッチ421は、予測残差Dをプライマリ変換部402に供給することにより、プライマリ変換、セカンダリ変換、および帯域制限を実行させる。一方、変換スキップフラグts_flagまたは変換量子化バイパスフラグtransquant_bypass_flagが1である場合、スイッチ421(制御部)は、予測残差Dを帯域制限後のセカンダリ変換係数Coeff´として量子化部113に供給することにより、プライマリ変換、セカンダリ変換、および帯域制限をスキップさせる。
帯域制限部424は、制御部101から供給されるブロックサイズTBSizeに基づいて、セカンダリ変換部403から出力されるセカンダリ変換係数Coeffに対して高周波成分を0にするように帯域制限を行い、帯域制限後のセカンダリ変換係数Coeff´を導出する。帯域制限部424は、帯域制限後のセカンダリ変換係数Coeff´を量子化部113に供給する。
具体的には、帯域制限部424は、ブロックサイズTBSizeが所定のブロックサイズTH_TBSize未満である場合、セカンダリ変換係数Coeffに対して帯域制限を行わず、セカンダリ変換係数Coeffを帯域制限後のセカンダリ変換係数Coeff´として量子化部113に供給する。
一方、帯域制限部424は、ブロックサイズTBSizeが所定のブロックサイズTH_TBSize以上である場合、変換ブロック内の座標(i,j)ごとに、以下の式(35)により、帯域制限フィルタH(i,j)とセカンダリ変換係数Coeff(i,j)を用いて、帯域制限後のセカンダリ変換係数Coeff(i,j)´を導出する。
なお、帯域制限フィルタH(i,j)は、以下の式(36)で定義される。
また、TBXSize, TBYSizeは、それぞれ、処理対象変換ブロックの横幅のサイズ、縦幅のサイズである。式(35)と式(36)によれば、セカンダリ変換係数Coeff (i,j)´の高周波成分は0になる。帯域制限部424は、以上のようにして導出された帯域制限後のセカンダリ変換係数Coeff´を量子化部113に供給する。
<画像符号化処理の流れ>
本技術を適用した画像処理装置としての画像符号化装置の第3の実施の形態により実行される画像符号化処理は、ステップS104の変換処理およびS107の逆変換処理を除いて、図11の画像符号化処理と同様である。逆変換処理は、変換処理の逆処理であり、後述する画像復号処理において実行される逆変換処理と同様に実行されるので、ここでは、変換処理についてのみ説明する。
<変換処理の流れ>
図27は、本技術を適用した画像処理装置としての画像符号化装置の第3の実施の形態により実行される変換処理の流れの例を説明するフローチャートである。
変換処理が開始されると、ステップS401において、スイッチ421は、制御部101から供給される変換スキップフラグts_flagまたは変換量子化バイパスフラグtransquant_bypass_flagが1であるか否かを判定する。
ステップS401で変換スキップフラグts_flagまたは変換量子化バイパスフラグtransquant_bypass_flagが1であると判定された場合、スイッチ421は、プライマリ変換、セカンダリ変換、および帯域制限をスキップすると判定する。そして、スイッチ421は、ステップS402乃至S406の処理を行わず、演算部111から供給される予測残差Dを帯域制限後のセカンダリ変換係数Coeff´として量子化部113に供給し、処理を終了する。
一方、ステップS401で変換スキップフラグts_flagと変換量子化バイパスフラグtransquant_bypass_flagが0であると判定された場合、スイッチ421は、プライマリ変換、セカンダリ変換、および帯域制限を実行すると判定する。そして、スイッチ421は、予測残差Dをプライマリ変換部402に供給し、処理をS402に進める。
ステップS402において、プライマリ変換部402は、制御部101から供給されるプライマリ変換識別子pt_idxに基づいて、スイッチ421から供給される予測残差Dに対してプライマリ変換を行い、プライマリ変換係数Coeff_Pを導出する。プライマリ変換部402は、プライマリ変換係数Coeff_Pをセカンダリ変換部403に供給する。
ステップS403において、セカンダリ変換部403は、セカンダリ変換識別子st_idxが0より大きいか否かを判定する。ステップS403でセカンダリ変換識別子st_idxが0より大きいと判定された場合、即ちセカンダリ変換識別子st_idxがセカンダリ変換の実行を示す場合、処理はステップS404に進む。
ステップS404において、セカンダリ変換部403は、プライマリ変換係数Coeff_Pに対して、セカンダリ変換識別子st_idxに対応するセカンダリ変換を実行し、セカンダリ変換係数Coeffを導出する。セカンダリ変換部403は、セカンダリ変換係数Coeffを帯域制限部424に供給し、処理をステップS405に進める。
一方、ステップS403でセカンダリ変換識別子st_idxが0より大きくはないと判定された場合、即ちセカンダリ変換識別子st_idxがセカンダリ変換のスキップを示す場合、セカンダリ変換部403は、ステップS404の処理をスキップする。そして、セカンダリ変換部403は、ステップS402の処理により得られたプライマリ変換係数Coeff_Pをセカンダリ変換係数Coeffとして帯域制限部424に供給し、処理をステップS405に進める。
ステップS405において、帯域制限部424は、処理対象変換ブロックのブロックサイズTBSizeが所定のブロックサイズTH_TBSize以上であるか否かを判定する。ステップS405でブロックサイズTBSizeが所定のブロックサイズTH_TBSize以上であると判定された場合、処理はステップS406に進む。
ステップS406において、帯域制限部424は、上述した式(35)により、セカンダリ変換係数Coeffに対して、上述した式(36)で定義される帯域制限フィルタHを適用して帯域制限を行い、帯域制限後のセカンダリ変換係数Coeff´を導出する。そして、帯域制限部424は、帯域制限後のセカンダリ変換係数Coeff´を量子化部113に供給し、処理を終了する。
一方、ステップS405でブロックサイズTBSizeが所定のブロックサイズTH_TBSize未満であると判定された場合、帯域制限部424は、ステップS406の処理をスキップする。そして、帯域制限部424は、セカンダリ変換係数Coeffをそのまま帯域制限後のセカンダリ変換係数Coeff´として量子化部113に供給し、処理を終了する。
なお、変換処理は、実施可能な範囲で、各ステップの処理順の入れ替えや、処理の内容を変更してよい。例えば、ステップS403においてセカンダリ変換識別子st_idxが0より大きくはないと判定された場合、単位行列がセカンダリ変換の行列Rとして選択され、ステップS404の処理が実行されるようにしてもよい。
以上のように、スイッチ421は、変換スキップまたは変換量子化バイパスが行われない場合、予測残差Dをプライマリ変換部402およびセカンダリ変換部403を介して帯域制限部424に供給する。これにより、帯域制限部424は、ブロックサイズTBSizeが所定のブロックサイズTH_TBSize以上である場合、セカンダリ変換係数Coeffの高周波成分を0にするように帯域制限を行う。従って、この場合、画像符号化装置は、セカンダリ変換係数Coeffの低周波成分のみを符号化すれば済み、セカンダリ変換係数Coeffの符号化処理を削減することができる。
また、スイッチ421は、変換スキップまたは変換量子化バイパスが行われる場合、予測残差Dを帯域制限部424に供給しない。これにより、帯域制限部424は、ブロックサイズTBSizeが所定のブロックサイズTH_TBSize以上であっても、予測残差Dであるセカンダリ変換係数Coeffに対しては帯域制限を行わない。即ち、変換スキップまたは変換量子化バイパスが行われる場合、帯域制限もスキップされる。従って、変換スキップまたは変換量子化バイパスが行われる場合にも帯域制限が行われる場合に比べて、変換スキップまたは変換量子化バイパスが行われ、ブロックサイズTBSizeが所定のブロックサイズTH_TBSize以上であるときの歪の増大を防止することができる。その結果、符号化効率の低減を抑制する、即ち符号化効率を改善することができる。また、変換量子化バイパスを行うことにより、ロスレス符号化を行うことができる。
<画像復号装置>
次に、以上のように符号化された符号化データの復号について説明する。本技術を適用した画像処理装置としての画像復号装置の第3の実施の形態の構成は、変換情報Tinfoと逆変換部の構成を除いて、図13の構成と同一である。変換情報Tinfoについては上述したため、以下では、逆変換部についてのみ説明する。
<逆変換部>
図28は、本技術を適用した画像処理装置としての画像復号装置の第3の実施の形態における逆変換部の主な構成例を示すブロック図である。
図28に示されるように、逆変換部440は、スイッチ441、帯域制限部442、逆セカンダリ変換部443、および逆プライマリ変換部444を有する。
スイッチ441には、復号部211から変換スキップフラグts_flagと変換量子化バイパスフラグtransquant_bypass_flagが供給され、逆量子化部212からセカンダリ変換係数Coeff_IQが供給される。スイッチ441は、変換スキップフラグts_flagと変換量子化バイパスフラグtransquant_bypass_flagに基づいて、セカンダリ変換係数Coeff_IQに対する帯域制限、逆セカンダリ変換、および逆プライマリ変換のスキップを制御する。
具体的には、変換スキップフラグts_flagまたは変換量子化バイパスフラグtransquant_bypass_flagが0である場合、スイッチ441は、セカンダリ変換係数Coeff_IQを帯域制限部442に供給することにより、帯域制限、逆セカンダリ変換、および逆プライマリ変換を実行させる。一方、変換スキップフラグts_flagまたは変換量子化バイパスフラグtransquant_bypass_flagが1である場合、スイッチ441(制御部)は、セカンダリ変換係数Coeff_IQを予測残差D´として演算部214に供給することにより、帯域制限、逆セカンダリ変換、および逆プライマリ変換をスキップさせる。
帯域制限部442は、復号部211から供給される処理対象変換ブロックのブロックサイズTBSizeに基づいて、スイッチ441から供給されるセカンダリ変換係数Coeff_IQに対して高周波成分を0にするように帯域制限を行い、帯域制限後のセカンダリ変換係数Coeff_IQ´を導出する。帯域制限部442は、帯域制限後のセカンダリ変換係数Coeff_IQ´を、逆セカンダリ変換部443に供給する。
具体的には、帯域制限部442は、ブロックサイズTBSizeが所定のブロックサイズTH_TBSize未満である場合、セカンダリ変換係数Coeff_IQに対して帯域制限を行わず、セカンダリ変換係数Coeff_IQを帯域制限後のセカンダリ変換係数Coeff_IQ´として逆セカンダリ変換部443に供給する。
一方、帯域制限部442は、ブロックサイズTBSizeが所定のブロックサイズTH_TBSize以上である場合、上述した式(35)に示す帯域制限フィルタHをセカンダリ変換係数Coeff_IQに対して適用し、セカンダリ変換係数Coeff_IQ(i,j)´を導出する。
即ち、帯域制限部442は、変換ブロック内の座標(i,j)ごとに、以下の式(37)により、帯域制限フィルタH(i,j)とセカンダリ変換係数Coeff_IQ(i,j)を用いて、帯域制限後のセカンダリ変換係数Coeff_IQ(i,j)´を導出する。
式(37)によれば、セカンダリ変換係数Coeff_IQ(i,j)´の高周波成分は0になる。帯域制限部442は、以上のようにして導出された帯域制限後のセカンダリ変換係数Coeff_IQ´を逆セカンダリ変換部443に供給する。
逆セカンダリ変換部443は、復号部211から供給されるセカンダリ変換識別子st_idxに基づいて、帯域制限部442から供給される帯域制限後のセカンダリ変換係数Coeff_IQ´に対して逆セカンダリ変換を行い、プライマリ変換係数Coeff_ISを導出する。逆セカンダリ変換部443は、プライマリ変換係数Coeff_ISを逆プライマリ変換部444に供給する。
逆プライマリ変換部444は、プライマリ変換識別子pt_idxに基づいて、逆セカンダリ変換部443から供給されるプライマリ変換係数Coeff_ISに対して、図14の逆プライマリ変換部232と同様に逆プライマリ変換を実行し、予測残差D´を導出する。逆プライマリ変換部444は、導出した予測残差D´を演算部214に供給する。
<画像復号処理の流れ>
本技術を適用した画像処理装置としての画像復号装置の第3の実施の形態により実行される画像復号処理は、ステップS203の逆変換処理を除いて、図15の画像復号処理と同様であるので、以下では、逆変換処理についてのみ説明する。
<逆変換処理の流れ>
図29は、本技術を適用した画像処理装置としての画像復号装置の第3の実施の形態により実行される逆変換処理の流れの例を説明するフローチャートである。
逆変換処理が開始されると、ステップS421において、スイッチ441は、復号部211から供給される変換スキップフラグts_flagまたは変換量子化バイパスフラグtransquant_bypass_flagが1であるか否かを判定する。
ステップS421で変換スキップフラグts_flagまたは変換量子化バイパスフラグtransquant_bypass_flagが1であると判定された場合、スイッチ441は、帯域制限、逆セカンダリ変換、および逆プライマリ変換をスキップすると判定する。そして、スイッチ441は、ステップS422乃至S426の処理を行わず、逆量子化部212から供給されるセカンダリ変換係数Coeff_IQを予測残差D´として演算部214に供給し、処理を終了する。
一方、ステップS421で変換スキップフラグts_flagと変換量子化バイパスフラグtransquant_bypass_flagが0であると判定された場合、スイッチ441は、帯域制限、逆セカンダリ変換、および逆プライマリ変換を実行すると判定する。そして、スイッチ441は、逆量子化部212から供給されるセカンダリ変換係数Coeff_IQを帯域制限部442に供給し、処理をステップS422に進める。
ステップS422において、帯域制限部442は、処理対象変換ブロックのブロックサイズTBSizeが所定のブロックサイズTH_TBSize以上であるか否かを判定する。ステップS422でブロックサイズTBSizeが所定のブロックサイズTH_TBSize以上であると判定された場合、処理はステップS423に進む。
ステップS423において、帯域制限部442は、セカンダリ変換係数Coeff_IQに対して帯域制限フィルタHを適用して帯域制限を行い、帯域制限後のセカンダリ変換係数Coeff_IQ´を導出する。そして、帯域制限部424は、帯域制限後のセカンダリ変換係数Coeff_IQ´を逆セカンダリ変換部443に供給し、処理をステップS424に進める。
一方、ステップS422でブロックサイズTBSizeが所定のブロックサイズTH_TBSize未満であると判定された場合、帯域制限部442は、ステップS423の処理をスキップする。そして、帯域制限部442は、セカンダリ変換係数Coeff_IQをそのまま帯域制限後のセカンダリ変換係数Coeff_IQ´として逆セカンダリ変換部443に供給し、処理をステップS424に進める。
ステップS424において、逆セカンダリ変換部443は、セカンダリ変換識別子st_idxが0より大きいか否かを判定する。ステップS424でセカンダリ変換識別子st_idxが0より大きいと判定された場合、即ちセカンダリ変換識別子st_idxが逆セカンダリ変換の実行を示す場合、処理はステップS425に進む。
ステップS425において、逆セカンダリ変換部443は、帯域制限部442から供給される帯域制限後のセカンダリ変換係数Coeff_IQ´に対して、セカンダリ変換識別子st_idxに対応する逆セカンダリ変換を実行し、プライマリ変換係数Coeff_Pを導出する。逆セカンダリ変換部443は、プライマリ変換係数Coeff_Pを逆プライマリ変換部444に供給し、処理をステップS426に進める。
一方、ステップS424でセカンダリ変換識別子st_idxが0より大きくはないと判定された場合、即ちセカンダリ変換識別子st_idxが逆セカンダリ変換のスキップを示す場合、逆セカンダリ変換部443は、ステップS425の処理をスキップする。そして、逆セカンダリ変換部443は、帯域制限後のセカンダリ変換係数Coeff_IQ´をプライマリ変換係数Coeff_ISとして逆プライマリ変換部444に供給し、処理をステップS426に進める。
ステップS426において、逆プライマリ変換部444は、逆セカンダリ変換部443から供給されるプライマリ変換係数Coeff_ISに対して逆プライマリ変換を実行し、予測残差D’を導出して演算部214に供給する。そして、処理は終了する。
なお、以上の逆変換処理は、実施可能な範囲で、各ステップの処理順の入れ替えや、処理の内容を変更してよい。例えば、ステップS424においてセカンダリ変換識別子st_idxが0より大きくはないと判定された場合、単位行列が逆セカンダリ変換の行列IRとして選択され、ステップS425の処理が実行されるようにしてもよい。
以上のように、スイッチ441は、逆変換スキップ、または、逆量子化と逆変換のスキップ(以下、逆量子化逆変換バイパスという)が行われない場合、セカンダリ変換係数Coeff_IQを帯域制限部442に供給する。これにより、帯域制限部442は、ブロックサイズTBSizeが所定のブロックサイズTH_TBSize以上である場合、セカンダリ変換係数Coeff_IQの高周波成分を0にするように帯域制限を行う。従って、この場合、画像復号装置は、セカンダリ変換係数Coeff_IQの低周波成分のみを逆変換すれば済み、セカンダリ変換係数Coeff_IQの逆変換処理を削減することができる。
また、スイッチ441は、変換スキップまたは逆量子化逆変換バイパスが行われる場合、セカンダリ変換係数Coeff_IQを帯域制限部442に供給しない。これにより、帯域制限部442は、ブロックサイズTBSizeが所定のブロックサイズTH_TBSize以上であっても、予測残差であるセカンダリ変換係数Coeff_IQに対しては帯域制限を行わない。即ち、逆変換スキップまたは逆量子化逆変換バイパスが行われる場合、帯域制限もスキップされる。従って、変換スキップまたは変換量子化バイパスが行われる場合に帯域制限もスキップすることにより歪みの増大が防止された符号化データを復号することができる。その結果、符号化効率が改善された符号化データを復号することができる。また、変換量子化バイパスによりロスレス符号化された符号化データをロスレス復号することができる。
なお、上述した説明では、画像復号装置の第3の実施の形態において帯域制限が行われたが、「ブロックサイズTBSizeが所定のブロックサイズTH_TBSize以上である場合に非ゼロ係数が左上の低周波数領域((TH_TBSize>>1)×(TH_TBSize>>1))内に制限される」というビットストリーム制約が設けられる場合、帯域制限は行われなくてもよい。このビットストリーム制約は、「変換スキップフラグts_flagおよび変換量子化バイパスフラグtransquant_bypass_flagが0であり、かつ、ブロックサイズTBSizeが所定のブロックサイズTH_TBSizeであるとき、変換ブロック内のラスト非ゼロ係数の位置を示すラスト非ゼロ係数X座標(last_sig_coeff_x_pos)およびラスト非ゼロ係数Y座標(last_sig_coeff_y_pos)の値は、0から(TH_TBSize/2)-1までの範囲内の値である」と表現することもできる。
また、所定のブロックサイズTH_TBSizeは、64×64のほか、任意の値に設定することができる。
さらに、第3の実施の形態におけるセカンダリ変換の方法は、非特許文献1に記載されている方法に限定されない。例えば、第1や第2の実施の形態における方法であってもよい。また、セカンダリ変換係数は、クリップして所定の範囲内に制限されるようにしてもよい。
<4.第4の実施の形態>
<CU,PU、およびTUの形状>
図30は、第4の実施の形態におけるCU,PU、およびTUの形状について説明する図である。
第4の実施の形態におけるCU,PU、およびTUは、JVET-C0024, “EE2.1: Quadtree plus binary tree structure integration with JEM tools”に記載されているQTBT(Quad tree plus binary tree)のCU,PU、およびTUである。
具体的には、第4の実施の形態におけるCUのブロック分割では、1つのブロックを4(=2x2)個だけでなく、2(=1x2,2x1)個のサブブロックにも分割することができる。即ち、第4の実施の形態では、CUのブロック分割は、1つのブロックを4個または2個のサブブロックへの分割を再帰的に繰り返すことにより行われ、結果として四分木(Quad-Tree)状または水平方向もしくは垂直方向の2分木(Binary-Tree)状のツリー構造が形成される。
その結果、CUの形状は、正方形だけでなく、長方形である可能性がある。例えば、LCUサイズが128x128である場合、CUのサイズ(水平方向のサイズw×垂直方向のサイズh)は、図30に示すように、128x128,64x64,32x32,16x16,8x8,4x4といった正方形のサイズだけでなく、128x64,128x32,128x16,128x8,128x4,64x128,32x128,16x128,8x128,4x128,64x32,64x16,64x8,64x4,32x64,16x64,8x64,4x64,32x16,32x8,32x4,16x32,8x32,4x32,16x8,16x4,8x16,4x16, 8x4,4x8といった長方形のサイズである可能性がある。また、第4の実施の形態では、PUとTUは、CUと同一である。
<画像符号化装置>
本技術を適用した画像処理装置としての画像符号化装置の第4の実施の形態の構成は、変換情報Tinfo、変換部、および逆変換部の構成を除いて、第3の実施の形態の構成と同一である。従って、以下では、変換情報Tinfo、変換部、および逆変換部についてのみ説明する。
第4の実施の形態における変換情報Tinfoは、ブロックサイズTBSizeの代わりに、変換ブロックの横幅のサイズ(水平方向のサイズ)TBXSizeと縦幅のサイズ(垂直方向のサイズ)TBYSizeが含まれる点を除いて、第3の実施の形態における変換情報Tinfoと同一である。
また、第4の実施の形態における逆変換部により行われる逆変換は、変換部により行われる変換の逆処理であり、後述する画像復号装置において行われる逆変換と同様の処理である。したがって、この逆変換については、画像復号装置に関する説明において後述する。
<変換部>
図31は、本技術を適用した画像処理装置としての画像符号化装置の第4の実施の形態における変換部の主な構成例を示すブロック図である。
図31に示す構成のうち、図26の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
図31の変換部460の構成は、帯域制限部404の代わりに帯域制限部464が設けられる点が、図26の変換部420の構成と異なる。
変換部460の帯域制限部464は、制御部101から供給される水平方向のサイズTBXSizeと垂直方向のサイズTBYSizeに基づいて、セカンダリ変換部403から出力されるセカンダリ変換係数Coeffに対して高周波成分を0にするように帯域制限を行い、帯域制限後のセカンダリ変換係数Coeff´を導出する。帯域制限部464は、帯域制限後のセカンダリ変換係数Coeff´を量子化部113に供給する。
具体的には、帯域制限部464は、水平方向のサイズTBXSizeと垂直方向のサイズTBYSizeの大きい方であるmax(TBXSize,TBYSize)が所定のサイズTHSize未満である場合(max(TBXSize,TBYSize)<THSize)、セカンダリ変換係数Coeffに対して帯域制限を行わず、セカンダリ変換係数Coeffを帯域制限後のセカンダリ変換係数Coeff´として量子化部113に供給する。
一方、帯域制限部464は、max(TBXSize,TBYSize)が所定のサイズTHSize以上である場合(max(TBXSize,TBYSize)>=THSize)、変換ブロック内の画素単位の座標(i,j)ごとに、上述した式(35)により、帯域制限後のセカンダリ変換係数Coeff(i,j)´を導出する。即ち、条件式max(TBXSize,TBYSize)>=THSizeの論理値の値が1(真)である場合、帯域制限部464は、帯域制限を行い、0(偽)である場合、帯域制限を行わない。
なお、帯域制限フィルタH(i,j)は、以下の式(38)で定義される。
THは閾値である。式(35)と式(38)によれば、座標(i,j)を含む、セカンダリ変換における変換ブロック内の処理単位である2Nx2Mのサブブロックが左上のTH×THのサブブロックからなる正方形の領域以外のサブブロックである場合、セカンダリ変換係数Coeff (i,j)´は0になる。即ち、セカンダリ変換係数Coeff (i,j)´の高周波成分は0になる。帯域制限部464は、以上のようにして導出された帯域制限後のセカンダリ変換係数Coeff´を量子化部113に供給する。
<帯域制限フィルタの例>
図32は、帯域制限フィルタH(i,j)の例を示す図である。
図32において、実線の矩形は、変換ブロックを示し、点線の矩形は、サブブロックを示している。このことは、後述する図36乃至図38においても同様である。また、図32の例では、サブブロックのサイズが22x22であり、サイズTHSizeが、8個のサブブロックのサイズであり、帯域制限フィルタH(i,j)における閾値THが4である。また、図32のAは、変換ブロックサイズTBXSize×TBYSizeが8×8のサブブロックからなるサイズ(32×32の変換ブロックサイズ)である例を示し、図32のBは、変換ブロックサイズTBXSize×TBYSizeが8×4のサブブロックからなるサイズ(32×16の変換ブロックサイズ)である例を示し、図32のCは、変換ブロックサイズTBXSize×TBYSizeが4×8のサブブロックからなるサイズ(16×32の変換ブロックサイズ)である例を示す。
この場合、図32のAに示すように、水平方向のサイズTBXSizeと垂直方向のサイズTBYSizeの両方が8個のサブブロックのサイズであるとき、帯域制限フィルタH(i,j)が設定される。このとき、左上の図中斜線が付された4×4のサブブロック群471Aに含まれる座標(i,j)の帯域制限フィルタH(i,j)は1であり、サブブロック群471A以外のサブブロック内の座標(i,j)の帯域制限フィルタH(i,j)は0である。
また、図32のBに示すように、水平方向のサイズTBXSizeが8個のサブブロックのサイズであり、垂直方向のサイズTBYSizeが水平方向のサイズTBXSizeより小さい4個のサブブロックのサイズであるときにも、帯域制限フィルタH(i,j)が設定される。このとき、左側の図中斜線が付された4×4のサブブロック群471Bに含まれる座標(i,j)の帯域制限フィルタH(i,j)は1であり、サブブロック群471B以外のサブブロック内の座標(i,j)の帯域制限フィルタH(i,j)は0である。
さらに、図32のCに示すように、水平方向のサイズTBXSizeが4個のサブブロックサイズであり、垂直方向のサイズTBYSizeが水平方向のサイズTBXSizeより大きい8個のサブブロックのサイズであるときにも、帯域制限フィルタH(i,j)が設定される。このとき、上側の図中斜線が付された4×4のサブブロック群471Cに含まれる座標(i,j)の帯域制限フィルタH(i,j)は1であり、サブブロック群471C以外のサブブロック内の座標(i,j)の帯域制限フィルタH(i,j)は0である。
以上のように、max(TBXSize,TBYSize)がサイズTHSize以上である場合、帯域制限フィルタH(i,j)は、座標(i,j)を含むサブブロックの位置に応じて0または1に設定される。
<画像符号化処理の流れ>
本技術を適用した画像処理装置としての画像符号化装置の第4の実施の形態により実行される画像符号化処理は、変換処理および逆変換処理を除いて、第3の実施の形態における画像符号化処理と同様である。逆変換処理は、変換処理の逆処理であり、後述する画像復号処理において実行される逆変換処理と同様に実行されるので、ここでは、変換処理についてのみ説明する。
<変換処理の流れ>
図33は、本技術を適用した画像処理装置としての画像符号化装置の第4の実施の形態により実行される変換処理の流れの例を説明するフローチャートである。
ステップS461乃至S464の処理は、図27のステップS401乃至S404の処理と同様であるので、説明は省略する。
ステップS465において、帯域制限部464は、処理対象変換ブロックのmax(TBXSize,TBYSize)が所定のサイズTHSize以上であるか否かを判定する。ステップS465でmax(TBXSize,TBYSize)が所定のサイズTHSize以上であると判定された場合、処理はステップS466に進む。
ステップS466において、帯域制限部464は、上述した式(35)により、セカンダリ変換係数Coeffに対して、上述した式(38)で定義される帯域制限フィルタHを適用して帯域制限を行い、帯域制限後のセカンダリ変換係数Coeff´を導出する。そして、帯域制限部464は、帯域制限後のセカンダリ変換係数Coeff´を量子化部113に供給し、処理を終了する。
一方、ステップS465でmax(TBXSize,TBYSize)が所定のサイズTHSize未満であると判定された場合、帯域制限部464は、ステップS466の処理をスキップする。そして、帯域制限部464は、セカンダリ変換係数Coeffをそのまま帯域制限後のセカンダリ変換係数Coeff´として量子化部113に供給し、処理を終了する。
なお、変換処理は、実施可能な範囲で、各ステップの処理順の入れ替えや、処理の内容を変更してよい。例えば、ステップS463においてセカンダリ変換識別子st_idxが0より大きくはないと判定された場合、単位行列がセカンダリ変換の行列Rとして選択され、ステップS464の処理が実行されるようにしてもよい。
以上のように、帯域制限部464は、変換ブロックの水平方向のサイズTBXSizeおよび垂直方向のサイズTBYSizeに基づいて帯域制限を行う。従って、変換ブロックの形状が長方形である場合であっても、適切に帯域制限を行うことができる。
また、帯域制限部464は、帯域制限によってセカンダリ変換係数Coeffを0にする領域を、TH×THのサブブロックからなる正方形の領域以外の領域に設定する。従って、変換ブロックの形状が長方形である場合であっても、所定のサイズの正方形の領域以外の領域のセカンダリ変換係数Coeffを0にすることができる。
<画像復号装置>
次に、以上のように符号化された符号化データの復号について説明する。本技術を適用した画像処理装置としての画像復号装置の第4の実施の形態の構成は、変換情報Tinfoと逆変換部の構成を除いて、第3の実施の形態の構成と同一である。変換情報Tinfoについては上述したため、以下では、逆変換部についてのみ説明する。
<逆変換部>
図34は、本技術を適用した画像処理装置としての画像復号装置の第4の実施の形態における逆変換部の主な構成例を示すブロック図である。
図34に示す構成のうち、図28の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
図34の逆変換部480の構成は、帯域制限部442の代わりに帯域制限部482が設けられる点が、図28の逆変換部440の構成と異なる。
逆変換部480の帯域制限部482は、復号部211から供給される処理対象変換ブロックの水平方向のサイズTBXSizeおよび垂直方向のサイズTBYSizeに基づいて、スイッチ441から供給されるセカンダリ変換係数Coeff_IQに対して高周波成分を0にするように帯域制限を行い、帯域制限後のセカンダリ変換係数Coeff_IQ´を導出する。帯域制限部482は、帯域制限後のセカンダリ変換係数Coeff_IQ´を、逆セカンダリ変換部443に供給する。
具体的には、帯域制限部482は、max(TBXSize,TBYSize)が所定のサイズTHSize未満である場合、セカンダリ変換係数Coeff_IQに対して帯域制限を行わず、セカンダリ変換係数Coeff_IQを帯域制限後のセカンダリ変換係数Coeff_IQ´として逆セカンダリ変換部443に供給する。
一方、帯域制限部482は、max(TBXSize,TBYSize)が所定のサイズTHSize以上である場合、上述した式(37)により、上述した式(38)で定義された帯域制限フィルタHをセカンダリ変換係数Coeff_IQに対して適用する。帯域制限部482は、その結果導出された帯域制限後のセカンダリ変換係数Coeff_IQ´を逆セカンダリ変換部443に供給する。
<画像復号処理の流れ>
本技術を適用した画像処理装置としての画像復号装置の第4の実施の形態により実行される画像復号処理は、ステップS203の逆変換処理を除いて、図15の画像復号処理と同様であるので、以下では、逆変換処理についてのみ説明する。
<逆変換処理の流れ>
図35は、本技術を適用した画像処理装置としての画像復号装置の第4の実施の形態により実行される逆変換処理の流れの例を説明するフローチャートである。
逆変換処理が開始されると、ステップS481において、スイッチ441は、復号部211から供給される変換スキップフラグts_flagまたは変換量子化バイパスフラグtransquant_bypass_flagが1であるか否かを判定する。
ステップS481で変換スキップフラグts_flagまたは変換量子化バイパスフラグtransquant_bypass_flagが1であると判定された場合、スイッチ441は、帯域制限、逆セカンダリ変換、および逆プライマリ変換をスキップすると判定する。そして、スイッチ441は、ステップS482乃至S486の処理を行わず、逆量子化部212から供給されるセカンダリ変換係数Coeff_IQを予測残差D´として演算部214に供給し、処理を終了する。
一方、ステップS481で変換スキップフラグts_flagと変換量子化バイパスフラグtransquant_bypass_flagが0であると判定された場合、スイッチ441は、帯域制限、逆セカンダリ変換、および逆プライマリ変換を実行すると判定する。そして、スイッチ441は、逆量子化部212から供給されるセカンダリ変換係数Coeff_IQを帯域制限部482に供給し、処理をステップS482に進める。
ステップS482において、帯域制限部482は、max(TBXSize,TBYSize)が所定のサイズTHSize以上であるか否かを判定する。ステップS482でmax(TBXSize,TBYSize)が所定のサイズTHSize以上であると判定された場合、処理はステップS483に進む。
ステップS483において、帯域制限部482は、上述した式(37)により、上述した式(38)で定義されたセカンダリ変換係数Coeff_IQに対して帯域制限フィルタHを適用して帯域制限を行い、帯域制限後のセカンダリ変換係数Coeff_IQ´を導出する。そして、帯域制限部464は、帯域制限後のセカンダリ変換係数Coeff_IQ´を逆セカンダリ変換部443に供給し、処理をステップS484に進める。
一方、ステップS482でmax(TBXSize,TBYSize)が所定のサイズTHSize未満であると判定された場合、帯域制限部482は、ステップS483の処理をスキップする。そして、帯域制限部482は、セカンダリ変換係数Coeff_IQをそのまま帯域制限後のセカンダリ変換係数Coeff_IQ´として逆セカンダリ変換部443に供給し、処理をステップS484に進める。
ステップS484乃至S486の処理は、図29のステップS424乃至S426の処理と同様であるので、説明は省略する。
以上のように、帯域制限部482は、変換ブロックの水平方向のサイズTBXSizeおよび垂直方向のサイズTBYSizeに基づいて帯域制限を行う。従って、変換ブロックの形状が長方形である場合であっても、適切に帯域制限を行うことができる。
また、帯域制限部482は、帯域制限によってセカンダリ変換係数Coeffを0にする領域を、TH×THのサブブロックからなる正方形の領域以外の領域に設定する。従って、変換ブロックの形状が長方形である場合であっても、所定のサイズの正方形の領域以外の領域のセカンダリ変換係数Coeffを0にすることができる。
なお、上述した説明では、画像復号装置の第4の実施の形態において帯域制限が行われたが、「max(TBXSize,TBYSize)が所定のサイズTHSize以上である場合に、非ゼロ係数が左上の低周波数領域(例えば(THSize>>1)×(THSize>>1の領域)内に制限される」というビットストリーム制約が設けられる場合、帯域制限は行われなくてもよい。このビットストリーム制約は、「変換スキップフラグts_flagおよび変換量子化バイパスフラグtransquant_bypass_flagが0であり、かつ、変換ブロックのmax(TBXSize,TBYSize)が所定のサイズTHSize以上であるとき、ラスト非ゼロ係数X座標(last_sig_coeff_x_pos)およびラスト非ゼロ係数Y座標(last_sig_coeff_y_pos)の値は、0から所定値(例えば(THSize/2)-1)までの範囲内の値である」と表現することもできる。
また、第4の実施の形態におけるセカンダリ変換の方法は、非特許文献1に記載されている方法に限定されない。例えば、第1や第2の実施の形態における方法であってもよい。また、セカンダリ変換係数は、クリップして所定の範囲内に制限されるようにしてもよい。
さらに、帯域制限を行うか否かの判定方法は、水平方向のサイズTBXSize(またはその対数値log2TBXSize)および垂直方向のサイズTBYSize(またはその対数値log2TBYSize)に基づいて変換ブロックのサイズが所定のサイズ以上であるかどうかを判定する方法であれば、上述した方法に限定されない。
例えば、帯域制限部464(482)は、水平方向のサイズTBXSizeおよび垂直方向のサイズTBYSizeの対数の大きい方であるmax(log2TBXSize,log2TBYSize)が所定の閾値log2THSize以上である場合(max(log2TBXSize, log2TBYSize)>=log2THSize)の論理値が1(真)である場合)に帯域制限を行うようにしてもよい。また、帯域制限部464(482)は、水平方向のサイズTBXSizeと垂直方向のサイズTBYSizeの和または積が所定の閾値TH_Size以上である場合(TBXSize+TBYSize>=TH_SizeまたはTBXSize*TBYSize>=TH_Sizeの論理値が1(真)である場合)に帯域制限を行うようにしてもよい。さらに、帯域制限部464(482)は、水平方向のサイズTBXSizeと垂直方向のサイズTBYSizeの対数の和が所定の閾値log2THSize以上である場合(log2TBXSize+log2TBYSize>=log2THSizeの論理値が1(真)である場合)に帯域制限を行うようにしてもよい。これらの場合、論理値が0(偽)であるときには、帯域制限は行われない。
また、帯域制限部464(482)は、座標(i,j)を含むサブブロックの位置ではなく、座標(i,j)の位置に応じて帯域制限フィルタH(i,j)を0または1に設定するようにしてもよい。この場合、帯域制限フィルタH(i,j)は、以下の式(39)により定義される。
<帯域制限フィルタの他の例>
図36乃至図38は、帯域制限フィルタH(i,j)の他の例を示す図である。
図36乃至図38の例では、帯域制限フィルタH(i,j)は、座標 (i,j)を含むサブブロックの処理順(スキャン順)sbk_scanorder(i>>N,j>>M)に基づいて、以下の式(40)により定義される。なお、サブブロックのスキャン順sbk_scanorder(i>>N,j>>M)は、スキャン識別子scanIdxと変換ブロックのサイズに基づいて決定される。
THscanorderは閾値である。式(40)において、閾値THscanorderは、例えば、変換ブロック内のサブブロックの総数のalpha (alphaは0から1までの値)倍にすることができる。
式(35)と式(40)によれば、座標(i,j)を含む2Nx2Mのサブブロックのスキャン順sbk_scanorder(i>>N,j>>M)が閾値THscanorder以上である場合、セカンダリ変換係数Coeff (i,j)´は0になる。即ち、スキャン順が早いTHscanorder個のサブブロック以外の高周波成分のサブブロックのセカンダリ変換係数Coeff (i,j)´は0になる。
また、図36乃至図38の例では、サブブロックのサイズが22x22であり、サイズTHSizeが、8個のサブブロックのサイズである。さらに、図36の例では、帯域制限フィルタH(i,j)における閾値THscanorderは10であり、図37および図38の例では、16である。また、図36のA乃至図38のAは、変換ブロックサイズTBXSize×TBYSizeが8×8のサブブロックからなるサイズ(32×32の変換ブロックサイズ)である例を示し、図36のB乃至図38のBは、変換ブロックサイズTBXSize×TBYSizeが8×4のサブブロックからなるサイズ(32×16の変換ブロックサイズ)である例を示し、図36のC乃至図38のCは、変換ブロックサイズTBXSize×TBYSizeが4×8のサブブロックからなるサイズ(16×32の変換ブロックサイズ)である例を示す。
この場合、図36のA乃至図38のAに示すように、水平方向のサイズTBXSizeと垂直方向のサイズTBYSizeの両方が8個のサブブロックのサイズであるとき、帯域制限フィルタH(i,j)が設定される。
図36のAに示すように、サブブロックが斜め方向スキャン(up-right diagonal scan)される場合、左上の10個の図中斜線が付されたサブブロック群501Aに含まれる座標(i,j)の帯域制限フィルタH(i,j)は1であり、そのサブブロック群501A以外のサブブロック内の座標(i,j)の帯域制限フィルタH(i,j)は0である。
また、図37のAに示すように、サブブロックが水平方向スキャン(horizontal fast scan)される場合、上側の16個の図中斜線が付されたサブブロック群502Aに含まれる座標(i,j)の帯域制限フィルタH(i,j)は1であり、そのサブブロック群502A以外のサブブロック内の座標(i,j)の帯域制限フィルタH(i,j)は0である。
図38のAに示すように、サブブロックが垂直方向スキャン(vertical fast scan)される場合、左側の16個の図中斜線が付されたサブブロック群503Aに含まれる座標(i,j)の帯域制限フィルタH(i,j)は1であり、そのサブブロック群503A以外のサブブロック内の座標(i,j)の帯域制限フィルタH(i,j)は0である。
また、図36のB乃至図38のBに示すように、水平方向のサイズTBXSizeが8個のサブブロックのサイズであり、垂直方向のサイズTBYSizeが水平方向のサイズTBXSizeより小さい4個のサブブロックのサイズであるときにも、帯域制限フィルタH(i,j)が設定される。
図36のBに示すように、サブブロックが斜め方向スキャンされる場合、左上の10個の図中斜線が付されたサブブロック群501Bに含まれる座標(i,j)の帯域制限フィルタH(i,j)は1であり、そのサブブロック群501B以外のサブブロック内の座標(i,j)の帯域制限フィルタH(i,j)は0である。
また、図37のBに示すように、サブブロックが水平方向スキャンされる場合、上側の16個の図中斜線が付されたサブブロック群502Bに含まれる座標(i,j)の帯域制限フィルタH(i,j)は1であり、そのサブブロック群502B以外のサブブロック内の座標(i,j)の帯域制限フィルタH(i,j)は0である。
図38のBに示すように、サブブロックが垂直方向スキャンされる場合、左側の16個の図中斜線が付されたサブブロック群503Bに含まれる座標(i,j)の帯域制限フィルタH(i,j)は1であり、そのサブブロック群503B以外のサブブロック内の座標(i,j)の帯域制限フィルタH(i,j)は0である。
さらに、図36のC乃至図38のCに示すように、水平方向のサイズTBXSizeが4個のサブブロックサイズであり、垂直方向のサイズTBYSizeが水平方向のサイズTBXSizeより大きい8個のサブブロックのサイズであるときにも、帯域制限フィルタH(i,j)が設定される。
図36のCに示すように、サブブロックが斜め方向スキャンされる場合、左上の10個の図中斜線が付されたサブブロック群501Cに含まれる座標(i,j)の帯域制限フィルタH(i,j)は1であり、そのサブブロック群501C以外のサブブロック内の座標(i,j)の帯域制限フィルタH(i,j)は0である。
また、図37のCに示すように、サブブロックが水平方向スキャンされる場合、上側の16個の図中斜線が付されたサブブロック群502Cに含まれる座標(i,j)の帯域制限フィルタH(i,j)は1であり、そのサブブロック群502C以外のサブブロック内の座標(i,j)の帯域制限フィルタH(i,j)は0である。
図38のCに示すように、サブブロックが垂直方向スキャンされる場合、左側の16個の図中斜線が付されたサブブロック群503Cに含まれる座標(i,j)の帯域制限フィルタH(i,j)は1であり、そのサブブロック群503C以外のサブブロック内の座標(i,j)の帯域制限フィルタH(i,j)は0である。
以上のように、図36乃至図38の例では、max(TBXSize,TBYSize)がサイズTHSize以上である場合、帯域制限フィルタH(i,j)は、座標(i,j)を含むサブブロックのスキャン順に基づいて0または1に設定される。なお、図36乃至図38の例では、サブブロックが斜め方向スキャンされる場合と、サブブロックが水平方向スキャンまたは垂直方向スキャンされる場合とで、閾値THscanorderが異なっているが、同一であってもよい。
なお、帯域制限フィルタH(i,j)は、座標(i,j)のスキャン順coef_scanorder(i,j)に基づいて、以下の式(41)により定義されるようにしてもよい。スキャン順coef_scanorder(i,j)は、スキャン識別子scanIdxと変換ブロックのサイズに基づいて決定される。
式(41)において、閾値THscanorderは、例えば、変換ブロック内の画素の総数(TBXSize x TBYSize)のalpha (alphaは0から1までの値)倍にすることができる。
<変換処理・逆変換処理の流れの他の例>
第4の実施の形態において、変換ブロックサイズだけでなく、変換ブロックサイズが所定のブロックサイズ以上である場合に帯域制限フィルタを適用するか否かを示す帯域制限フィルタ有効フラグbandpass_filter_enabled_flagにも基づいて、帯域制限を制御するようにしてもよい。この場合、制御部101は、帯域制限フィルタ有効フラグbandpass_filter_enabled_flagを、SPS,PPS,SH,CUなどの単位で符号化パラメータに含める。この帯域制限フィルタ有効フラグbandpass_filter_enabled_flagは、符号化部114に供給されて符号化されるほか、変換部460の帯域制限部464に供給される。
図39は、この場合の変換部460の変換処理の流れの例を説明するフローチャートである。
図39のステップS501乃至S504の処理は、図33のステップS461乃至S464の処理と同様であるので、説明は省略する。
ステップS505において、帯域制限部464は、帯域制限フィルタ有効フラグbandpass_filter_enabled_flagが、変換ブロックサイズが所定のブロックサイズ以上である場合に帯域制限フィルタを適用することを示す1(真)であるかどうかを判定する。ステップS505で帯域制限フィルタ有効フラグbandpass_filter_enabled_flagが1であると判定された場合、処理はステップS506に進む。ステップS506およびS507の処理は、図33のステップS465およびS466の処理と同様であるので、説明は省略する。
一方、ステップS505で帯域制限フィルタ有効フラグbandpass_filter_enabled_flagが、変換ブロックサイズが所定のブロックサイズ以上であっても帯域制限フィルタを適用しないことを示す0(偽)であると判定された場合、変換処理は終了する。
以上のように、帯域制限部464は、帯域制限フィルタ有効フラグbandpass_filter_enabled_flagに基づいて、正方形または長方形からなる矩形の変換ブロックのブロックサイズが所定のブロックサイズ以上である場合に、非ゼロ係数を低周波数領域内に制限する帯域制限フィルタを適用するか否かを制御する。
具体的には、帯域制限フィルタ有効フラグbandpass_filter_enabled_flagが1(真)である場合、変換ブロックサイズが所定のブロックサイズ以上であるときには、帯域制限部464は、高周波成分の変換係数を強制的に0になるように帯域制限を行う。従って、符号化部114は、変換ブロックの低周波成分の非ゼロ係数のみを符号化する。よって、符号化効率を維持しつつ、非ゼロ係数の符号化処理を低減することができる。
また、帯域制限フィルタ有効フラグbandpass_filter_enabled_flagが0(偽)である場合、変換ブロックが所定のブロックサイズ以上であるときであっても、帯域制限部464は帯域制限を行わない。従って、符号化部114は、低周波成分から高周波成分に存在する非ゼロ係数を符号化する。よって、大きい変換ブロックにおいて、帯域制限フィルタを適用する場合と比較して、高周波成分の再現性が高まり、符号化効率が向上する。
さらに、帯域制限フィルタ有効フラグbandpass_filter_enabled_flagは、所定の単位(SPS,PPS,SH,CUなど)毎に設定される。従って、帯域制限部464は、帯域制限フィルタ有効フラグbandpass_filter_enabled_flagを用いて、所定の単位毎に、適応的に、変換ブロックサイズが所定のブロックサイズ以上である場合に帯域制限フィルタを適用するか否かを制御することができる。
また、第4の実施の形態において、変換ブロックサイズだけでなく、帯域制限フィルタ有効フラグbandpass_filter_enabled_flagにも基づいて、帯域制限を制御する場合、復号部211は、帯域制限フィルタ有効フラグbandpass_filter_enabled_flagを含む符号化パラメータの符号化データを所定の単位(SPS,PPS,SH,CUなど)で復号する。復号の結果得られる帯域制限フィルタ有効フラグbandpass_filter_enabled_flagは、逆変換部480の帯域制限部482に供給する。
図40は、この場合の逆変換部480の逆変換処理の流れの例を説明するフローチャートである。
図40のステップS521において、スイッチ441は、復号部211から供給される変換スキップフラグts_flagまたは変換量子化バイパスフラグtransquant_bypass_flagが1であるか否かを判定する。
ステップS521で変換スキップフラグts_flagまたは変換量子化バイパスフラグtransquant_bypass_flagが1であると判定された場合、スイッチ441は、帯域制限、逆セカンダリ変換、および逆プライマリ変換をスキップすると判定する。そして、スイッチ441は、ステップS522乃至S527の処理を行わず、逆量子化部212から供給されるセカンダリ変換係数Coeff_IQを予測残差D´として演算部214に供給し、処理を終了する。
一方、ステップS521で変換スキップフラグts_flagと変換量子化バイパスフラグtransquant_bypass_flagが0であると判定された場合、スイッチ441は、逆量子化部212から供給されるセカンダリ変換係数Coeff_IQを帯域制限部482に供給する。そして、処理はステップS522に進む。
ステップS522において、帯域制限部482は、帯域制限フィルタ有効フラグbandpass_filter_enabled_flagの値が1(真)であるか否かを判定する。ステップS522で帯域制限フィルタ有効フラグの値が1(真)であると判定された場合、処理はステップS523に進む。ステップS523乃至S527の処理は、図35のステップS482乃至S486の処理と同様であるので、説明は省略する。
ステップS522で帯域制限フィルタ有効フラグの値が0(偽)であると判定された場合、処理は、ステップS523およびS524の処理をスキップし、ステップS525に進む。
以上のように、帯域制限部482は、帯域制限フィルタ有効フラグbandpass_filter_enabled_flagに基づいて、正方形または長方形からなる矩形の変換ブロックのブロックサイズが所定のブロックサイズ以上である場合に、非ゼロ係数を低周波数領域内に制限する帯域制限フィルタを適用するか否かを制御する。
具体的には、帯域制限フィルタ有効フラグbandpass_filter_enabled_flagが1(真)である場合、変換ブロックサイズが所定のブロックサイズ以上であるときには、帯域制限部482は、高周波成分の変換係数を強制的に0になるように帯域制限を行う。従って、演算部214は、変換ブロックの低周波成分の非ゼロ係数のみを復号する。よって、符号化効率を維持しつつ、非ゼロ係数の復号処理を低減することができる。また、逆変換部213は、変換ブロックの低周波成分の非ゼロ係数に対してのみ逆変換の処理を実行すればよいため、逆変換の処理量を低減することができる。従って、画像符号化装置が帯域制限を行わない場合に比べて、画像復号装置の計算複雑度や実装コストを低減することができる。
また、帯域制限フィルタ有効フラグbandpass_filter_enabled_flagが0(偽)である場合、変換ブロックが所定のブロックサイズ以上であるときであっても、帯域制限部482は帯域制限を行わない。従って、演算部214は、低周波成分から高周波成分に存在する非ゼロ係数を復号する。よって、大きい変換ブロックにおいて、帯域制限フィルタを適用する場合と比較して、高周波成分の再現性が高まり、復号画像の画質が向上する。
さらに、帯域制限フィルタ有効フラグbandpass_filter_enabled_flagは、所定の単位(SPS,PPS,SH,CUなど)毎に設定される。従って、帯域制限部482は、帯域制限フィルタ有効フラグbandpass_filter_enabled_flagを用いて、所定の単位毎に、適応的に、変換ブロックサイズが所定のブロックサイズ以上である場合に帯域制限フィルタを適用するか否かを制御することができる。
なお、図39および図40の例では、max(TBXSize,TBYSize)が所定のサイズTHSize以上であるかどうかによって、変換ブロックサイズが所定のブロックサイズ以上であるかどうかが判定されたが、その他の上述した方法によって判定されるようにしてもよい。
また、第3の実施の形態においても、第4の実施の形態と同様に、変換ブロックサイズだけでなく、帯域制限フィルタ有効フラグbandpass_filter_enabled_flagにも基づいて、帯域制限を制御するようにしてもよい。
<5.第5の実施の形態>
<情報のデータ単位>
以上において説明した画像に関する情報や画像の符号化・復号に関する情報が設定される(または対象とするデータの)データ単位は、それぞれ任意であり、上述した例に限定されない。例えば、これらの情報が、それぞれ、TU、TB、PU、PB、CU、LCU、サブブロック、ブロック、タイル、スライス、ピクチャ、シーケンス、またはコンポーネント毎に設定されるようにしてもよいし、それらのデータ単位のデータを対象とするようにしてもよい。もちろん、このデータ単位は、情報毎に設定される。つまり、全ての情報が同一のデータ単位毎に設定される(または対象とする)ようにしなくてもよい。なお、これらの情報の格納場所は任意であり、上述したデータ単位のヘッダやパラメータセット等に格納されるようにしてもよい。また、複数個所に格納されるようにしてもよい。
<制御情報>
以上の各実施の形態において説明した本技術に関する制御情報を符号化側から復号側に伝送するようにしてもよい。例えば、上述した本技術を適用することを許可(または禁止)するか否かを制御する制御情報(例えばenabled_flag)を伝送するようにしてもよい。また、例えば、上述した本技術を適用することを許可(または禁止)するブロックサイズの上限若しくは下限、またはその両方を指定する制御情報を伝送するようにしてもよい。
<符号化・復号>
本技術は、プライマリ変換およびセカンダリ変換(逆セカンダリ変および逆プライマリ変換)を行う任意の画像符号化・復号に適用することができる。つまり、変換(逆変換)、量子化(逆量子化)、符号化(復号)、予測等の仕様は任意であり、上述した例に限定されない。例えば、変換(逆変換)において、(逆)プライマリ変換および(逆)セカンダリ変換以外の(逆)変換(すなわち3以上の(逆)変換)が行われるようにしてもよい。また、符号化(復号)は、可逆な方式であってもよいし、非可逆な方式であってもよい。さらに、量子化(逆量子化)や予測等は省略するようにしてもよい。また、フィルタ処理等の上述していない処理が行われるようにしてもよい。
<本技術の適用分野>
本技術を適用したシステム、装置、処理部等は、例えば、交通、医療、防犯、農業、畜産業、鉱業、美容、工場、家電、気象、自然監視等、任意の分野に利用することができる。
例えば、本技術は、鑑賞の用に供される画像を伝送するシステムやデバイスにも適用することができる。また、例えば、本技術は、交通の用に供されるシステムやデバイスにも適用することができる。さらに、例えば、本技術は、セキュリティの用に供されるシステムやデバイスにも適用することができる。また、例えば、本技術は、スポーツの用に供されるシステムやデバイスにも適用することができる。さらに、例えば、本技術は、農業の用に供されるシステムやデバイスにも適用することができる。また、例えば、本技術は、畜産業の用に供されるシステムやデバイスにも適用することができる。さらに、本技術は、例えば火山、森林、海洋等の自然の状態を監視するシステムやデバイスにも適用することができる。また、本技術は、例えば天気、気温、湿度、風速、日照時間等を観測する気象観測システムや気象観測装置に適用することができる。さらに、本技術は、例えば鳥類、魚類、ハ虫類、両生類、哺乳類、昆虫、植物等の野生生物の生態を観測するシステムやデバイス等にも適用することができる。
<多視点画像符号化・復号システムへの適用>
上述した一連の処理は、複数の視点(ビュー(view))の画像を含む多視点画像の符号化・復号を行う多視点画像符号化・復号システムに適用することができる。その場合、各視点(ビュー(view))の符号化・復号において、本技術を適用するようにすればよい。
<階層画像符号化・復号システムへの適用>
また、上述した一連の処理は、所定のパラメータについてスケーラビリティ(scalability)機能を有するように複数レイヤ化(階層化)された階層画像の符号化・復号を行う階層画像符号化(スケーラブル符号化)・復号システムに適用することができる。その場合、各階層(レイヤ)の符号化・復号において、本技術を適用するようにすればよい。
<コンピュータ>
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
図41は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
図41に示されるコンピュータ800において、CPU(Central Processing Unit)801、ROM(Read Only Memory)802、RAM(Random Access Memory)803は、バス804を介して相互に接続されている。
バス804にはまた、入出力インタフェース810も接続されている。入出力インタフェース810には、入力部811、出力部812、記憶部813、通信部814、およびドライブ815が接続されている。
入力部811は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部812は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部813は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部814は、例えば、ネットワークインタフェースよりなる。ドライブ815は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア821を駆動する。
以上のように構成されるコンピュータでは、CPU801が、例えば、記憶部813に記憶されているプログラムを、入出力インタフェース810およびバス804を介して、RAM803にロードして実行することにより、上述した一連の処理が行われる。RAM803にはまた、CPU801が各種の処理を実行する上において必要なデータなども適宜記憶される。
コンピュータ(CPU801)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア821に記録して適用することができる。その場合、プログラムは、リムーバブルメディア821をドライブ815に装着することにより、入出力インタフェース810を介して、記憶部813にインストールすることができる。
また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部814で受信し、記憶部813にインストールすることができる。
その他、このプログラムは、ROM802や記憶部813に、あらかじめインストールしておくこともできる。
<本技術の応用>
上述した実施形態に係る画像符号化装置100や画像復号装置200は、例えば、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機や受信機、または、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置や、これら記憶媒体から画像を再生する再生装置などの、様々な電子機器に応用され得る。
<第1の応用例:テレビジョン受像機>
図42は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース(I/F)部909、制御部910、ユーザインタフェース(I/F)部911、及びバス912を備える。
チューナ902は、アンテナ901を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ902は、復調により得られた符号化ビットストリームをデマルチプレクサ903へ出力する。即ち、チューナ902は、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送部としての役割を有する。
デマルチプレクサ903は、符号化ビットストリームから視聴対象の番組の映像ストリーム及び音声ストリームを分離し、分離した各ストリームをデコーダ904へ出力する。また、デマルチプレクサ903は、符号化ビットストリームからEPG(Electronic Program Guide)などの補助的なデータを抽出し、抽出したデータを制御部910に供給する。なお、デマルチプレクサ903は、符号化ビットストリームがスクランブルされている場合には、デスクランブルを行ってもよい。
デコーダ904は、デマルチプレクサ903から入力される映像ストリーム及び音声ストリームを復号する。そして、デコーダ904は、復号処理により生成される映像データを映像信号処理部905へ出力する。また、デコーダ904は、復号処理により生成される音声データを音声信号処理部907へ出力する。
映像信号処理部905は、デコーダ904から入力される映像データを再生し、表示部906に映像を表示させる。また、映像信号処理部905は、ネットワークを介して供給されるアプリケーション画面を表示部906に表示させてもよい。また、映像信号処理部905は、映像データについて、設定に応じて、例えばノイズ除去などの追加的な処理を行ってもよい。さらに、映像信号処理部905は、例えばメニュー、ボタン又はカーソルなどのGUI(Graphical User Interface)の画像を生成し、生成した画像を出力画像に重畳してもよい。
表示部906は、映像信号処理部905から供給される駆動信号により駆動され、表示デバイス(例えば、液晶ディスプレイ、プラズマディスプレイ又はOELD(Organic ElectroLuminescence Display)(有機ELディスプレイ)など)の映像面上に映像又は画像を表示する。
音声信号処理部907は、デコーダ904から入力される音声データについてD/A変換及び増幅などの再生処理を行い、スピーカ908から音声を出力させる。また、音声信号処理部907は、音声データについてノイズ除去などの追加的な処理を行ってもよい。
外部インタフェース部909は、テレビジョン装置900と外部機器又はネットワークとを接続するためのインタフェースである。例えば、外部インタフェース部909を介して受信される映像ストリーム又は音声ストリームが、デコーダ904により復号されてもよい。即ち、外部インタフェース部909もまた、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送部としての役割を有する。
制御部910は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、プログラムデータ、EPGデータ、及びネットワークを介して取得されるデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、テレビジョン装置900の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース部911から入力される操作信号に応じて、テレビジョン装置900の動作を制御する。
ユーザインタフェース部911は、制御部910と接続される。ユーザインタフェース部911は、例えば、ユーザがテレビジョン装置900を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース部911は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部910へ出力する。
バス912は、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、音声信号処理部907、外部インタフェース部909及び制御部910を相互に接続する。
このように構成されたテレビジョン装置900において、デコーダ904が、上述した画像復号装置200の機能を有するようにしてもよい。つまり、デコーダ904が、符号化データを、以上の各実施の形態において説明した方法で復号するようにしてもよい。このようにすることにより、テレビジョン装置900は、図1乃至図23を参照して上述した各実施の形態と同様の効果を得ることができる。
また、このように構成されたテレビジョン装置900において、映像信号処理部905が、例えば、デコーダ904から供給される画像データを符号化し、得られた符号化データを、外部インタフェース部909を介してテレビジョン装置900の外部に出力させることができるようにしてもよい。そして、その映像信号処理部905が、上述した画像符号化装置100の機能を有するようにしてもよい。つまり、映像信号処理部905が、デコーダ904から供給される画像データを、以上の各実施の形態において説明した方法で符号化するようにしてもよい。このようにすることにより、テレビジョン装置900は、図1乃至図23を参照して上述した各実施の形態と同様の効果を得ることができる。
<第2の応用例:携帯電話機>
図43は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機920は、アンテナ921、通信部922、音声コーデック923、スピーカ924、マイクロホン925、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931、操作部932、及びバス933を備える。
アンテナ921は、通信部922に接続される。スピーカ924及びマイクロホン925は、音声コーデック923に接続される。操作部932は、制御部931に接続される。バス933は、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、及び制御部931を相互に接続する。
携帯電話機920は、音声通話モード、データ通信モード、撮影モード及びテレビ電話モードを含む様々な動作モードで、音声信号の送受信、電子メール又は画像データの送受信、画像の撮像、及びデータの記録などの動作を行う。
音声通話モードにおいて、マイクロホン925により生成されるアナログ音声信号は、音声コーデック923に供給される。音声コーデック923は、アナログ音声信号を音声データへ変換し、変換された音声データをA/D変換し圧縮する。そして、音声コーデック923は、圧縮後の音声データを通信部922へ出力する。通信部922は、音声データを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して音声データを生成し、生成した音声データを音声コーデック923へ出力する。音声コーデック923は、音声データを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
また、データ通信モードにおいて、例えば、制御部931は、操作部932を介するユーザによる操作に応じて、電子メールを構成する文字データを生成する。また、制御部931は、文字を表示部930に表示させる。また、制御部931は、操作部932を介するユーザからの送信指示に応じて電子メールデータを生成し、生成した電子メールデータを通信部922へ出力する。通信部922は、電子メールデータを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して電子メールデータを復元し、復元した電子メールデータを制御部931へ出力する。制御部931は、表示部930に電子メールの内容を表示させると共に、電子メールデータを記録再生部929に供給し、その記憶媒体に書き込ませる。
記録再生部929は、読み書き可能な任意の記憶媒体を有する。例えば、記憶媒体は、RAM又はフラッシュメモリなどの内蔵型の記憶媒体であってもよく、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USB(Universal Serial Bus)メモリ、又はメモリカードなどの外部装着型の記憶媒体であってもよい。
また、撮影モードにおいて、例えば、カメラ部926は、被写体を撮像して画像データを生成し、生成した画像データを画像処理部927へ出力する。画像処理部927は、カメラ部926から入力される画像データを符号化し、符号化ストリームを記録再生部929に供給し、その記憶媒体に書き込ませる。
さらに、画像表示モードにおいて、記録再生部929は、記憶媒体に記録されている符号化ストリームを読み出して画像処理部927へ出力する。画像処理部927は、記録再生部929から入力される符号化ストリームを復号し、画像データを表示部930に供給し、その画像を表示させる。
また、テレビ電話モードにおいて、例えば、多重分離部928は、画像処理部927により符号化された映像ストリームと、音声コーデック923から入力される音声ストリームとを多重化し、多重化したストリームを通信部922へ出力する。通信部922は、ストリームを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。これら送信信号及び受信信号には、符号化ビットストリームが含まれ得る。そして、通信部922は、受信信号を復調及び復号してストリームを復元し、復元したストリームを多重分離部928へ出力する。多重分離部928は、入力されるストリームから映像ストリーム及び音声ストリームを分離し、映像ストリームを画像処理部927、音声ストリームを音声コーデック923へ出力する。画像処理部927は、映像ストリームを復号し、映像データを生成する。映像データは、表示部930に供給され、表示部930により一連の画像が表示される。音声コーデック923は、音声ストリームを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
このように構成された携帯電話機920において、例えば画像処理部927が、上述した画像符号化装置100の機能を有するようにしてもよい。つまり、画像処理部927が、画像データを、以上の各実施の形態において説明した方法で符号化するようにしてもよい。このようにすることにより、携帯電話機920は、図1乃至図23を参照して上述した各実施の形態と同様の効果を得ることができる。
また、このように構成された携帯電話機920において、例えば画像処理部927が、上述した画像復号装置200の機能を有するようにしてもよい。つまり、画像処理部927が、符号化データを、以上の各実施の形態において説明した方法で復号するようにしてもよい。このようにすることにより、携帯電話機920は、図1乃至図23を参照して上述した各実施の形態と同様の効果を得ることができる。
<第3の応用例:記録再生装置>
図44は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置940は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置940は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置940は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置940は、音声データおよび映像データを復号する。
記録再生装置940は、チューナ941、外部インタフェース(I/F)部942、エンコーダ943、HDD(Hard Disk Drive)部944、ディスクドライブ945、セレクタ946、デコーダ947、OSD(On-Screen Display)部948、制御部949、およびユーザインタフェース(I/F)部950を備える。
チューナ941は、アンテナ(図示せず)を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ941は、復調により得られた符号化ビットストリームをセレクタ946へ出力する。即ち、チューナ941は、記録再生装置940における伝送部としての役割を有する。
外部インタフェース部942は、記録再生装置940と外部機器又はネットワークとを接続するためのインタフェースである。外部インタフェース部942は、例えば、IEEE(Institute of Electrical and Electronic Engineers)1394インタフェース、ネットワークインタフェース、USBインタフェース、又はフラッシュメモリインタフェースなどであってよい。例えば、外部インタフェース部942を介して受信される映像データおよび音声データは、エンコーダ943へ入力される。即ち、外部インタフェース部942は、記録再生装置940における伝送部としての役割を有する。
エンコーダ943は、外部インタフェース部942から入力される映像データおよび音声データが符号化されていない場合に、映像データおよび音声データを符号化する。そして、エンコーダ943は、符号化ビットストリームをセレクタ946へ出力する。
HDD部944は、映像および音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラムおよびその他のデータを内部のハードディスクに記録する。また、HDD部944は、映像および音声の再生時に、これらデータをハードディスクから読み出す。
ディスクドライブ945は、装着されている記録媒体へのデータの記録および読み出しを行う。ディスクドライブ945に装着される記録媒体は、例えばDVD(Digital Versatile Disc)ディスク(DVD-Video、DVD-RAM(DVD - Random Access Memory)、DVD-R(DVD - Recordable)、DVD-RW(DVD - Rewritable)、DVD+R(DVD + Recordable)、DVD+RW(DVD + Rewritable)等)又はBlu-ray(登録商標)ディスクなどであってよい。
セレクタ946は、映像および音声の記録時には、チューナ941又はエンコーダ943から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをHDD944又はディスクドライブ945へ出力する。また、セレクタ946は、映像及び音声の再生時には、HDD944又はディスクドライブ945から入力される符号化ビットストリームをデコーダ947へ出力する。
デコーダ947は、符号化ビットストリームを復号し、映像データ及び音声データを生成する。そして、デコーダ947は、生成した映像データをOSD部948へ出力する。また、デコーダ947は、生成した音声データを外部のスピーカへ出力する。
OSD部948は、デコーダ947から入力される映像データを再生し、映像を表示する。また、OSD部948は、表示する映像に、例えばメニュー、ボタン又はカーソルなどのGUIの画像を重畳してもよい。
制御部949は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置940の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース部950から入力される操作信号に応じて、記録再生装置940の動作を制御する。
ユーザインタフェース部950は、制御部949と接続される。ユーザインタフェース部950は、例えば、ユーザが記録再生装置940を操作するためのボタンおよびスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース部950は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部949へ出力する。
このように構成された記録再生装置940において、例えばエンコーダ943が、上述した画像符号化装置100の機能を有するようにしてもよい。つまり、エンコーダ943が、画像データを、以上の各実施の形態において説明方法で符号化するようにしてもよい。このようにすることにより、記録再生装置940は、図1乃至図23を参照して上述した各実施の形態と同様の効果を得ることができる。
また、このように構成された記録再生装置940において、例えばデコーダ947が、上述した画像復号装置200の機能を有するようにしてもよい。つまり、デコーダ947が、符号化データを、以上の各実施の形態において説明した方法で復号するようにしてもよい。このようにすることにより、記録再生装置940は、図1乃至図23を参照して上述した各実施の形態と同様の効果を得ることができる。
<第4の応用例:撮像装置>
図45は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置960は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
撮像装置960は、光学ブロック961、撮像部962、信号処理部963、画像処理部964、表示部965、外部インタフェース(I/F)部966、メモリ部967、メディアドライブ968、OSD部969、制御部970、ユーザインタフェース(I/F)部971、およびバス972を備える。
光学ブロック961は、撮像部962に接続される。撮像部962は、信号処理部963に接続される。表示部965は、画像処理部964に接続される。ユーザインタフェース部971は、制御部970に接続される。バス972は、画像処理部964、外部インタフェース部966、メモリ部967、メディアドライブ968、OSD部969、および制御部970を相互に接続する。
光学ブロック961は、フォーカスレンズ及び絞り機構などを有する。光学ブロック961は、被写体の光学像を撮像部962の撮像面に結像させる。撮像部962は、CCD(Charge Coupled Device)又はCMOS(Complementary Metal Oxide Semiconductor)などのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部962は、画像信号を信号処理部963へ出力する。
信号処理部963は、撮像部962から入力される画像信号に対してニー補正、ガンマ補正、色補正などの種々のカメラ信号処理を行う。信号処理部963は、カメラ信号処理後の画像データを画像処理部964へ出力する。
画像処理部964は、信号処理部963から入力される画像データを符号化し、符号化データを生成する。そして、画像処理部964は、生成した符号化データを外部インタフェース部966またはメディアドライブ968へ出力する。また、画像処理部964は、外部インタフェース部966またはメディアドライブ968から入力される符号化データを復号し、画像データを生成する。そして、画像処理部964は、生成した画像データを表示部965へ出力する。また、画像処理部964は、信号処理部963から入力される画像データを表示部965へ出力して画像を表示させてもよい。また、画像処理部964は、OSD部969から取得される表示用データを、表示部965へ出力する画像に重畳してもよい。
OSD部969は、例えばメニュー、ボタン又はカーソルなどのGUIの画像を生成して、生成した画像を画像処理部964へ出力する。
外部インタフェース部966は、例えばUSB入出力端子として構成される。外部インタフェース部966は、例えば、画像の印刷時に、撮像装置960とプリンタとを接続する。また、外部インタフェース部966には、必要に応じてドライブが接続される。ドライブには、例えば、磁気ディスク又は光ディスクなどのリムーバブルメディアが装着され、リムーバブルメディアから読み出されるプログラムが、撮像装置960にインストールされ得る。さらに、外部インタフェース部966は、LAN又はインターネットなどのネットワークに接続されるネットワークインタフェースとして構成されてもよい。即ち、外部インタフェース部966は、撮像装置960における伝送部としての役割を有する。
メディアドライブ968に装着される記録媒体は、例えば、磁気ディスク、光磁気ディスク、光ディスク、又は半導体メモリなどの、読み書き可能な任意のリムーバブルメディアであってよい。また、メディアドライブ968に記録媒体が固定的に装着され、例えば、内蔵型ハードディスクドライブ又はSSD(Solid State Drive)のような非可搬性の記憶部が構成されてもよい。
制御部970は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、撮像装置960の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース部971から入力される操作信号に応じて、撮像装置960の動作を制御する。
ユーザインタフェース部971は、制御部970と接続される。ユーザインタフェース部971は、例えば、ユーザが撮像装置960を操作するためのボタン及びスイッチなどを有する。ユーザインタフェース部971は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部970へ出力する。
このように構成された撮像装置960において、例えば画像処理部964が、上述した画像符号化装置100の機能を有するようにしてもよい。つまり、画像処理部964が、画像データを、以上の各実施の形態において説明した方法で符号化するようにしてもよい。このようにすることにより、撮像装置960は、図1乃至図23を参照して上述した各実施の形態と同様の効果を得ることができる。
また、このように構成された撮像装置960において、例えば画像処理部964が、上述した画像復号装置200の機能を有するようにしてもよい。つまり、画像処理部964が、符号化データを、以上の各実施の形態において説明した方法で復号するようにしてもよい。このようにすることにより、撮像装置960は、図1乃至図23を参照して上述した各実施の形態と同様の効果を得ることができる。
<第5の応用例:ビデオセット>
また、本技術は、任意の装置またはシステムを構成する装置に搭載するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等(すなわち、装置の一部の構成)として実施することもできる。図46は、本技術を適用したビデオセットの概略的な構成の一例を示している。
近年、電子機器の多機能化が進んでおり、その開発や製造において、その一部の構成を販売や提供等として実施する場合、1機能を有する構成として実施を行う場合だけでなく、関連する機能を有する複数の構成を組み合わせ、複数の機能を有する1セットとして実施を行う場合も多く見られるようになってきた。
図46に示されるビデオセット1300は、このような多機能化された構成であり、画像の符号化や復号(いずれか一方でもよいし、両方でも良い)に関する機能を有するデバイスに、その機能に関連するその他の機能を有するデバイスを組み合わせたものである。
図46に示されるように、ビデオセット1300は、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、およびフロントエンドモジュール1314等のモジュール群と、コネクティビティ1321、カメラ1322、およびセンサ1323等の関連する機能を有するデバイスとを有する。
モジュールは、互いに関連するいくつかの部品的機能をまとめ、まとまりのある機能を持った部品としたものである。具体的な物理的構成は任意であるが、例えば、それぞれ機能を有する複数のプロセッサ、抵抗やコンデンサ等の電子回路素子、その他のデバイス等を配線基板等に配置して一体化したものが考えられる。また、モジュールに他のモジュールやプロセッサ等を組み合わせて新たなモジュールとすることも考えられる。
図46の例の場合、ビデオモジュール1311は、画像処理に関する機能を有する構成を組み合わせたものであり、アプリケーションプロセッサ、ビデオプロセッサ、ブロードバンドモデム1333、およびRFモジュール1334を有する。
プロセッサは、所定の機能を有する構成をSoC(System On a Chip)により半導体チップに集積したものであり、例えばシステムLSI(Large Scale Integration)等と称されるものもある。この所定の機能を有する構成は、論理回路(ハードウエア構成)であってもよいし、CPU、ROM、RAM等と、それらを用いて実行されるプログラム(ソフトウエア構成)であってもよいし、その両方を組み合わせたものであってもよい。例えば、プロセッサが、論理回路とCPU、ROM、RAM等とを有し、機能の一部を論理回路(ハードウエア構成)により実現し、その他の機能をCPUにおいて実行されるプログラム(ソフトウエア構成)により実現するようにしてもよい。
図46のアプリケーションプロセッサ1331は、画像処理に関するアプリケーションを実行するプロセッサである。このアプリケーションプロセッサ1331において実行されるアプリケーションは、所定の機能を実現するために、演算処理を行うだけでなく、例えばビデオプロセッサ1332等、ビデオモジュール1311内外の構成を必要に応じて制御することもできる。
ビデオプロセッサ1332は、画像の符号化・復号(その一方または両方)に関する機能を有するプロセッサである。
ブロードバンドモデム1333は、インターネットや公衆電話回線網等の広帯域の回線を介して行われる有線若しくは無線(またはその両方)の広帯域通信により送信するデータ(デジタル信号)をデジタル変調する等してアナログ信号に変換したり、その広帯域通信により受信したアナログ信号を復調してデータ(デジタル信号)に変換したりする。ブロードバンドモデム1333は、例えば、ビデオプロセッサ1332が処理する画像データ、画像データが符号化されたストリーム、アプリケーションプログラム、設定データ等、任意の情報を処理する。
RFモジュール1334は、アンテナを介して送受信されるRF(Radio Frequency)信号に対して、周波数変換、変復調、増幅、フィルタ処理等を行うモジュールである。例えば、RFモジュール1334は、ブロードバンドモデム1333により生成されたベースバンド信号に対して周波数変換等を行ってRF信号を生成する。また、例えば、RFモジュール1334は、フロントエンドモジュール1314を介して受信されたRF信号に対して周波数変換等を行ってベースバンド信号を生成する。
なお、図46において点線1341に示されるように、アプリケーションプロセッサ1331とビデオプロセッサ1332を、一体化し、1つのプロセッサとして構成されるようにしてもよい。
外部メモリ1312は、ビデオモジュール1311の外部に設けられた、ビデオモジュール1311により利用される記憶デバイスを有するモジュールである。この外部メモリ1312の記憶デバイスは、どのような物理構成により実現するようにしてもよいが、一般的にフレーム単位の画像データのような大容量のデータの格納に利用されることが多いので、例えばDRAM(Dynamic Random Access Memory)のような比較的安価で大容量の半導体メモリにより実現するのが望ましい。
パワーマネージメントモジュール1313は、ビデオモジュール1311(ビデオモジュール1311内の各構成)への電力供給を管理し、制御する。
フロントエンドモジュール1314は、RFモジュール1334に対してフロントエンド機能(アンテナ側の送受信端の回路)を提供するモジュールである。図46に示されるように、フロントエンドモジュール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は、本技術を適用したセットとして実施することができる。
<ビデオプロセッサの構成例>
図47は、本技術を適用したビデオプロセッサ1332(図46)の概略的な構成の一例を示している。
図47の例の場合、ビデオプロセッサ1332は、ビデオ信号およびオーディオ信号の入力を受けてこれらを所定の方式で符号化する機能と、符号化されたビデオデータおよびオーディオデータを復号し、ビデオ信号およびオーディオ信号を再生出力する機能とを有する。
図47に示されるように、ビデオプロセッサ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(図46)等から入力されたビデオ信号を取得し、デジタル画像データに変換する。第1画像拡大縮小部1402は、画像データに対してフォーマット変換や画像の拡大縮小処理等を行う。第2画像拡大縮小部1403は、画像データに対して、ビデオ出力処理部1404を介して出力する先でのフォーマットに応じて画像の拡大縮小処理を行ったり、第1画像拡大縮小部1402と同様のフォーマット変換や画像の拡大縮小処理等を行ったりする。ビデオ出力処理部1404は、画像データに対して、フォーマット変換やアナログ信号への変換等を行って、再生されたビデオ信号として例えばコネクティビティ1321等に出力する。
フレームメモリ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等から入力されたオーディオ信号を例えばデジタル変換し、例えばMPEGオーディオ方式やAC3(AudioCode number 3)方式等の所定の方式で符号化する。オーディオエンコーダ1410は、オーディオ信号が符号化されたデータであるオーディオストリームをオーディオESバッファ1409Aに順次書き込む。オーディオデコーダ1411は、オーディオESバッファ1409Bから供給されたオーディオストリームを復号し、例えばアナログ信号への変換等を行って、再生されたオーディオ信号として例えばコネクティビティ1321等に供給する。
多重化部(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等から供給されたトランスポートストリームを、ストリームバッファ1414を介して取得し、逆多重化することにより、ビデオストリームとオーディオストリームとに変換することができる。また、例えば、逆多重化部(DMUX)1413は、例えばコネクティビティ1321により各種記録媒体から読み出されたファイルデータを、ストリームバッファ1414を介して取得し、逆多重化することにより、ビデオストリームとオーディオストリームとに変換することができる。
ストリームバッファ1414は、ビットストリームをバッファリングする。例えば、ストリームバッファ1414は、多重化部(MUX)1412から供給されたトランスポートストリームをバッファリングし、所定のタイミングにおいて、または外部からの要求等に基づいて、例えばコネクティビティ1321やブロードバンドモデム1333等に供給する。
また、例えば、ストリームバッファ1414は、多重化部(MUX)1412から供給されたファイルデータをバッファリングし、所定のタイミングにおいて、または外部からの要求等に基づいて、例えばコネクティビティ1321等に供給し、各種記録媒体に記録させる。
さらに、ストリームバッファ1414は、例えばコネクティビティ1321やブロードバンドモデム1333等を介して取得したトランスポートストリームをバッファリングし、所定のタイミングにおいて、または外部からの要求等に基づいて、逆多重化部(DMUX)1413に供給する。
また、ストリームバッファ1414は、例えばコネクティビティ1321等において各種記録媒体から読み出されたファイルデータをバッファリングし、所定のタイミングにおいて、または外部からの要求等に基づいて、逆多重化部(DMUX)1413に供給する。
次に、このような構成のビデオプロセッサ1332の動作の例について説明する。例えば、コネクティビティ1321等からビデオプロセッサ1332に入力されたビデオ信号は、ビデオ入力処理部1401において4:2:2Y/Cb/Cr方式等の所定の方式のデジタル画像データに変換され、フレームメモリ1405に順次書き込まれる。このデジタル画像データは、第1画像拡大縮小部1402または第2画像拡大縮小部1403に読み出されて、4:2:0Y/Cb/Cr方式等の所定の方式へのフォーマット変換および拡大縮小処理が行われ、再びフレームメモリ1405に書き込まれる。この画像データは、エンコード・デコードエンジン1407によって符号化され、ビデオストリームとしてビデオESバッファ1408Aに書き込まれる。
また、コネクティビティ1321等からビデオプロセッサ1332に入力されたオーディオ信号は、オーディオエンコーダ1410によって符号化され、オーディオストリームとして、オーディオESバッファ1409Aに書き込まれる。
ビデオESバッファ1408Aのビデオストリームと、オーディオESバッファ1409Aのオーディオストリームは、多重化部(MUX)1412に読み出されて多重化され、トランスポートストリームまたはファイルデータ等に変換される。多重化部(MUX)1412により生成されたトランスポートストリームは、ストリームバッファ1414にバッファされた後、例えばコネクティビティ1321やブロードバンドモデム1333等を介して外部ネットワークに出力される。また、多重化部(MUX)1412により生成されたファイルデータは、ストリームバッファ1414にバッファされた後、例えばコネクティビティ1321等に出力され、各種記録媒体に記録される。
また、例えばコネクティビティ1321やブロードバンドモデム1333等を介して外部ネットワークからビデオプロセッサ1332に入力されたトランスポートストリームは、ストリームバッファ1414にバッファされた後、逆多重化部(DMUX)1413により逆多重化される。また、例えばコネクティビティ1321等において各種記録媒体から読み出され、ビデオプロセッサ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が、上述した画像符号化装置100の機能若しくは画像復号装置200の機能またはその両方を有するようにしてもよい。このようにすることにより、ビデオプロセッサ1332は、図1乃至図23を参照して上述した各実施の形態と同様の効果を得ることができる。
なお、エンコード・デコードエンジン1407において、本技術(すなわち、画像符号化装置100の機能若しくは画像復号装置200の機能またはその両方)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
<ビデオプロセッサの他の構成例>
図48は、本技術を適用したビデオプロセッサ1332の概略的な構成の他の例を示している。図48の例の場合、ビデオプロセッサ1332は、ビデオデータを所定の方式で符号化・復号する機能を有する。
より具体的には、図48に示されるように、ビデオプロセッサ1332は、制御部1511、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、および内部メモリ1515を有する。また、ビデオプロセッサ1332は、コーデックエンジン1516、メモリインタフェース1517、多重化・逆多重化部(MUX DMUX)1518、ネットワークインタフェース1519、およびビデオインタフェース1520を有する。
制御部1511は、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516等、ビデオプロセッサ1332内の各処理部の動作を制御する。
図48に示されるように、制御部1511は、例えば、メインCPU1531、サブCPU1532、およびシステムコントローラ1533を有する。メインCPU1531は、ビデオプロセッサ1332内の各処理部の動作を制御するためのプログラム等を実行する。メインCPU1531は、そのプログラム等に従って制御信号を生成し、各処理部に供給する(つまり、各処理部の動作を制御する)。サブCPU1532は、メインCPU1531の補助的な役割を果たす。例えば、サブCPU1532は、メインCPU1531が実行するプログラム等の子プロセスやサブルーチン等を実行する。システムコントローラ1533は、メインCPU1531およびサブCPU1532が実行するプログラムを指定する等、メインCPU1531およびサブCPU1532の動作を制御する。
ディスプレイインタフェース1512は、制御部1511の制御の下、画像データを例えばコネクティビティ1321等に出力する。例えば、ディスプレイインタフェース1512は、デジタルデータの画像データをアナログ信号に変換し、再生されたビデオ信号として、またはデジタルデータの画像データのまま、コネクティビティ1321のモニタ装置等に出力する。
ディスプレイエンジン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は、複数の符号化・復号方式のコーデック機能を備え、その中から選択されたもので画像データの符号化または符号化データの復号を行うようにしてもよい。
図48に示される例において、コーデックエンジン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等向けのインタフェースである。ビデオインタフェース1520は、例えばコネクティビティ1321やカメラ1322等向けのインタフェースである。
次に、このようなビデオプロセッサ1332の動作の例について説明する。例えば、コネクティビティ1321やブロードバンドモデム1333等を介して外部ネットワークからトランスポートストリームを受信すると、そのトランスポートストリームは、ネットワークインタフェース1519を介して多重化・逆多重化部(MUX DMUX)1518に供給されて逆多重化され、コーデックエンジン1516により復号される。コーデックエンジン1516の復号により得られた画像データは、例えば、画像処理エンジン1514により所定の画像処理が施され、ディスプレイエンジン1513により所定の変換が行われ、ディスプレイインタフェース1512を介して例えばコネクティビティ1321等に供給され、その画像がモニタに表示される。また、例えば、コーデックエンジン1516の復号により得られた画像データは、コーデックエンジン1516により再符号化され、多重化・逆多重化部(MUX DMUX)1518により多重化されてファイルデータに変換され、ビデオインタフェース1520を介して例えばコネクティビティ1321等に出力され、各種記録媒体に記録される。
さらに、例えば、コネクティビティ1321等により図示せぬ記録媒体から読み出された、画像データが符号化された符号化データのファイルデータは、ビデオインタフェース1520を介して多重化・逆多重化部(MUX DMUX)1518に供給されて逆多重化され、コーデックエンジン1516により復号される。コーデックエンジン1516の復号により得られた画像データは、画像処理エンジン1514により所定の画像処理が施され、ディスプレイエンジン1513により所定の変換が行われ、ディスプレイインタフェース1512を介して例えばコネクティビティ1321等に供給され、その画像がモニタに表示される。また、例えば、コーデックエンジン1516の復号により得られた画像データは、コーデックエンジン1516により再符号化され、多重化・逆多重化部(MUX DMUX)1518により多重化されてトランスポートストリームに変換され、ネットワークインタフェース1519を介して例えばコネクティビティ1321やブロードバンドモデム1333等に供給され図示せぬ他の装置に伝送される。
なお、ビデオプロセッサ1332内の各処理部の間での画像データやその他のデータの授受は、例えば、内部メモリ1515や外部メモリ1312を利用して行われる。また、パワーマネージメントモジュール1313は、例えば制御部1511への電力供給を制御する。
このように構成されるビデオプロセッサ1332に本技術を適用する場合、コーデックエンジン1516に、上述した各実施形態に係る本技術を適用すればよい。つまり、例えば、コーデックエンジン1516が、上述した画像符号化装置100の機能若しくは画像復号装置200の機能またはその両方を有するようにすればよい。このようにすることにより、ビデオプロセッサ1332は、図1乃至図23を参照して上述した各実施の形態と同様の効果を得ることができる。
なお、コーデックエンジン1516において、本技術(すなわち、画像符号化装置100の機能)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
以上にビデオプロセッサ1332の構成を2例示したが、ビデオプロセッサ1332の構成は任意であり、上述した2例以外のものであってもよい。また、このビデオプロセッサ1332は、1つの半導体チップとして構成されるようにしてもよいが、複数の半導体チップとして構成されるようにしてもよい。例えば、複数の半導体を積層する3次元積層LSIとしてもよい。また、複数のLSIにより実現されるようにしてもよい。
<装置への適用例>
ビデオセット1300は、画像データを処理する各種装置に組み込むことができる。例えば、ビデオセット1300は、テレビジョン装置900(図42)、携帯電話機920(図43)、記録再生装置940(図44)、撮像装置960(図45)等に組み込むことができる。ビデオセット1300を組み込むことにより、その装置は、図1乃至図23を参照して上述した各実施の形態と同様の効果を得ることができる。
なお、上述したビデオセット1300の各構成の一部であっても、ビデオプロセッサ1332を含むものであれば、本技術を適用した構成として実施することができる。例えば、ビデオプロセッサ1332のみを本技術を適用したビデオプロセッサとして実施することができる。また、例えば、上述したように点線1341により示されるプロセッサやビデオモジュール1311等を、本技術を適用したプロセッサやモジュール等として実施することができる。さらに、例えば、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、およびフロントエンドモジュール1314を組み合わせ、本技術を適用したビデオユニット1361として実施することもできる。いずれの構成の場合であっても、図1乃至図23を参照して上述した各実施の形態と同様の効果を得ることができる。
つまり、ビデオプロセッサ1332を含むものであればどのような構成であっても、ビデオセット1300の場合と同様に、画像データを処理する各種装置に組み込むことができる。例えば、ビデオプロセッサ1332、点線1341により示されるプロセッサ、ビデオモジュール1311、または、ビデオユニット1361を、テレビジョン装置900(図42)、携帯電話機920(図43)、記録再生装置940(図44)、撮像装置960(図45)等に組み込むことができる。そして、本技術を適用したいずれかの構成を組み込むことにより、その装置は、ビデオセット1300の場合と同様に、図1乃至図23を参照して上述した各実施の形態と同様の効果を得ることができる。
<第6の応用例:ネットワークシステム>
また、本技術は、複数の装置により構成されるネットワークシステムにも適用することもできる。図49は、本技術を適用したネットワークシステムの概略的な構成の一例を示している。
図49に示されるネットワークシステム1600は、機器同士が、ネットワークを介して画像(動画像)に関する情報を授受するシステムである。このネットワークシステム1600のクラウドサービス1601は、自身に通信可能に接続されるコンピュータ1611、AV(Audio Visual)機器1612、携帯型情報処理端末1613、IoT(Internet of Things)デバイス1614等の端末に対して、画像(動画像)に関するサービスを提供するシステムである。例えば、クラウドサービス1601は、所謂動画配信(オンデマンドやライブ配信)のような、画像(動画像)のコンテンツの供給サービスを端末に提供する。また、例えば、クラウドサービス1601は、端末から画像(動画像)のコンテンツを受け取って保管するバックアップサービスを提供する。また、例えば、クラウドサービス1601は、端末同士の画像(動画像)のコンテンツの授受を仲介するサービスを提供する。
クラウドサービス1601の物理構成は任意である。例えば、クラウドサービス1601は、動画像を保存し、管理するサーバ、動画像を端末に配信するサーバ、動画像を端末から取得するサーバ、ユーザ(端末)や課金を管理するサーバ等の各種サーバや、インターネットやLAN等の任意のネットワークを有するようにしてもよい。
コンピュータ1611は、例えば、パーソナルコンピュータ、サーバ、ワークステーション等のような情報処理装置により構成される。AV機器1612は、例えば、テレビジョン受像機、ハードディスクレコーダ、ゲーム機器、カメラ等のような画像処理装置により構成される。携帯型情報処理端末1613は、例えば、ノート型パーソナルコンピュータ、タブレット端末、携帯電話機、スマートフォン等のような携帯型の情報処理装置により構成される。IoTデバイス1614は、例えば、機械、家電、家具、その他の物、ICタグ、カード型デバイス等、画像に関する処理を行う任意の物体により構成される。これらの端末は、いずれも通信機能を有し、クラウドサービス1601に接続し(セッションを確立し)、クラウドサービス1601と情報の授受を行う(すなわち通信を行う)ことができる。また、各端末は、他の端末と通信を行うこともできる。端末間の通信は、クラウドサービス1601を介して行うようにしてもよいし、クラウドサービス1601を介さずに行うようにしてもよい。
以上のようなネットワークシステム1600に本技術を適用し、端末間や、端末とクラウドサービス1601との間で画像(動画像)のデータが授受される際に、その画像データを各実施の形態において上述したように符号化・復号するようにしてもよい。つまり、端末(コンピュータ1611乃至IoTデバイス1614)やクラウドサービス1601が、それぞれ、上述した画像符号化装置100や画像復号装置200の機能を有するようにしてもよい。このようにすることにより、画像データを授受する端末(コンピュータ1611乃至IoTデバイス1614)やクラウドサービス1601は、図1乃至図23を参照して上述した各実施の形態と同様の効果を得ることができる。
<その他>
なお、符号化データ(ビットストリーム)に関する各種情報は、符号化データに多重化されて伝送され又は記録されるようにしてもよいし、符号化データに多重化されることなく、符号化データと関連付けられた別個のデータとして伝送され又は記録されるようにしてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る(リンクさせ得る)ようにすることを意味する。つまり、互いに関連付けられたデータは、1つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、画像とその画像に対応する情報とが、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
また、上述したように、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを1つのデータにまとめるといった、複数の物を1つにまとめることを意味し、上述の「関連付ける」の1つの方法を意味する。
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
また、例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
また、例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
また、例えば、上述したプログラムは、任意の装置において実行することができる。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
また、例えば、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
なお、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
なお、本明細書において複数説明した本技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術を、他の実施の形態において説明した本技術と組み合わせて実施することもできる。また、上述した任意の本技術を、上述していない他の技術と併用して実施することもできる。
なお、本技術は以下のような構成も取ることができる。
(1)
画像と前記画像の予測画像との差分である予測残差に対する変換処理であるプライマリ変換と、前記予測残差が前記プライマリ変換されて得られるプライマリ変換係数に対する変換処理であるセカンダリ変換とをスキップさせる場合、前記プライマリ変換係数が前記セカンダリ変換されて得られるセカンダリ変換係数に対する帯域制限もスキップさせる制御部
を備える画像処理装置。
(2)
前記制御部は、前記プライマリ変換をスキップさせない場合、前記プライマリ変換および前記セカンダリ変換の変換ブロックサイズが所定のサイズ以上であるとき、前記セカンダリ変換係数に対する帯域制限を行わせる
ように構成された
(1)に記載の画像処理装置。
(3)
前記制御部は、前記逆プライマリ変換をスキップさせない場合、前記逆プライマリ変換および前記逆セカンダリ変換の変換ブロックの水平方向のサイズおよび垂直方向のサイズに基づいて、前記セカンダリ変換係数に対する帯域制限を行わせる
ように構成された
(2)に記載の画像処理装置。
(4)
前記制御部は、前記逆プライマリ変換をスキップさせない場合、前記変換ブロックの水平方向および垂直方向のサイズのうちの大きい方が所定値以上であるとき、前記セカンダリ変換係数に対する帯域制限を行わせる
ように構成された
(3)に記載の画像処理装置。
(5)
前記制御部は、前記逆プライマリ変換をスキップさせない場合、前記変換ブロックの水平方向と垂直方向のサイズの和または積が所定値以上であるとき、前記セカンダリ変換係数に対する帯域制限を行わせる
ように構成された
(3)に記載の画像処理装置。
(6)
前記帯域制限は、前記逆プライマリ変換および前記逆セカンダリ変換の長方形の変換ブロック内の所定のサイズの正方形の領域以外の領域の帯域制限後の前記セカンダリ変換係数を0にすることにより行われる
ように構成された
(2)乃至(5)のいずれかに記載の画像処理装置。
(7)
前記帯域制限は、前記逆プライマリ変換および前記逆セカンダリ変換の変換ブロックを構成する画素のうちの、処理順が所定値以上である画素の帯域制限後の前記セカンダリ変換係数を0にすることにより行われる
ように構成された
(2)乃至(5)のいずれかに記載の画像処理装置。
(8)
画像処理装置が、
画像と前記画像の予測画像との差分である予測残差に対する変換処理であるプライマリ変換と、前記予測残差が前記プライマリ変換されて得られるプライマリ変換係数に対する変換処理であるセカンダリ変換とをスキップさせる場合、前記プライマリ変換係数が前記セカンダリ変換されて得られるセカンダリ変換係数に対する帯域制限もスキップさせる制御ステップ
を含む画像処理方法。
(9)
画像と前記画像の予測画像との差分である予測残差に対する変換処理であるプライマリ変換の逆変換である逆プライマリ変換と、前記予測残差が前記プライマリ変換されて得られるプライマリ変換係数に対する変換処理であるセカンダリ変換の逆変換である逆セカンダリ変換とをスキップさせる場合、前記プライマリ変換係数が前記セカンダリ変換されて帯域制限されることにより得られるセカンダリ変換係数に対する帯域制限もスキップさせる制御部
を備える画像処理装置。
(10)
前記制御部は、前記逆プライマリ変換をスキップさせない場合、前記逆プライマリ変換および前記逆セカンダリ変換の変換ブロックサイズが所定のサイズ以上であるとき、前記セカンダリ変換係数に対する帯域制限を行わせる
ように構成された
(9)に記載の画像処理装置。
(11)
前記制御部は、前記逆プライマリ変換をスキップさせない場合、前記逆プライマリ変換および前記逆セカンダリ変換の変換ブロックの水平方向のサイズおよび垂直方向のサイズに基づいて、前記セカンダリ変換係数に対する帯域制限を行わせる
ように構成された
(10)に記載の画像処理装置。
(12)
前記制御部は、前記逆プライマリ変換をスキップさせない場合、前記変換ブロックの水平方向および垂直方向のサイズのうちの大きい方が所定値以上であるとき、前記セカンダリ変換係数に対する帯域制限を行わせる
ように構成された
(11)に記載の画像処理装置。
(13)
前記制御部は、前記逆プライマリ変換をスキップさせない場合、前記変換ブロックの水平方向と垂直方向のサイズの和または積が所定値以上であるとき、前記セカンダリ変換係数に対する帯域制限を行わせる
ように構成された
(11)に記載の画像処理装置。
(14)
前記帯域制限は、前記逆プライマリ変換および前記逆セカンダリ変換の長方形の変換ブロック内の所定のサイズの正方形の領域以外の領域の帯域制限後の前記セカンダリ変換係数を0にすることにより行われる
ように構成された
(10)に記載の画像処理装置。
(15)
前記帯域制限は、前記逆プライマリ変換および前記逆セカンダリ変換の変換ブロックを構成する画素のうちの、処理順が所定値以上である画素の帯域制限後の前記セカンダリ変換係数を0にすることにより行われる
ように構成された
(10)に記載の画像処理装置。
(16)
画像処理装置が、
画像と前記画像の予測画像との差分である予測残差に対する変換処理であるプライマリ変換の逆変換である逆プライマリ変換と、前記予測残差が前記プライマリ変換されて得られるプライマリ変換係数に対する変換処理であるセカンダリ変換の逆変換である逆セカンダリ変換とをスキップさせる場合、前記プライマリ変換係数が前記セカンダリ変換されて帯域制限されることにより得られるセカンダリ変換係数に対する帯域制限もスキップさせる制御ステップ
を含む画像処理方法。
(17)
画像と前記画像の予測画像との差分である予測残差から得られる変換係数に対する変換処理のスキップを、サブブロック毎の変換係数の非ゼロ係数の数に基づいて、前記サブブロック毎に制御する制御部
を備える画像処理装置。
(18)
前記制御部は、前記予測残差がプライマリ変換されて得られるプライマリ変換係数に対するセカンダリ変換のスキップを、前記サブブロック毎の前記変換係数の非ゼロ係数の数に基づいて、前記サブブロック毎に制御する
(17)に記載の画像処理装置。
(19)
前記プライマリ変換係数が量子化されて得られる量子化プライマリ変換係数と、前記プライマリ変換係数が前記セカンダリ変換されて得られるセカンダリ変換係数が量子化されて得られる量子化セカンダリ変換係数とに基づいて、前記セカンダリ変換をスキップさせるか否かを、前記サブブロック毎に判定する判定部をさらに備え、
前記制御部は、前記判定部による判定の結果に応じて、前記プライマリ変換係数に対する前記セカンダリ変換のスキップを、前記サブブロック毎に制御するように構成される
(17)または(18)に記載の画像処理装置。
(20)
前記判定部は、前記量子化プライマリ変換係数の非ゼロ係数の数と、前記量子化セカンダリ変換係数の非ゼロ係数の数とを求め、求めた前記量子化プライマリ変換係数の非ゼロ係数の数と、前記量子化セカンダリ変換係数の非ゼロ係数の数と、所定の閾値とに基づいて、前記セカンダリ変換をスキップさせるか否かを、前記サブブロック毎に判定する
(17)乃至(19)のいずれかに記載の画像処理装置。
(21)
前記判定部は、前記量子化プライマリ変換係数の非ゼロ係数の数が前記量子化セカンダリ変換係数の非ゼロ係数の数以下の場合であって、かつ、前記量子化プライマリ変換係数の非ゼロ係数の数、または、前記量子化セカンダリ変換係数の非ゼロ係数の数が、前記閾値以下の場合、前記セカンダリ変換をスキップさせるように判定する
(17)乃至(20)のいずれかに記載の画像処理装置。
(22)
前記プライマリ変換係数を量子化して前記量子化プライマリ変換係数を求め、前記セカンダリ変換係数を量子化して前記量子化セカンダリ変換係数を求める量子化部をさらに備え、
前記判定部は、前記量子化部により量子化されて得られた前記量子化プライマリ変換係数および前記量子化セカンダリ変換係数に基づいて、前記セカンダリ変換をスキップさせるか否かを、前記サブブロック毎に判定するように構成される
(17)乃至(21)のいずれかに記載の画像処理装置。
(23)
前記プライマリ変換は直交変換であり、
前記セカンダリ変換は、
前記プライマリ変換係数を1次元のベクトルに変換し、
前記1次元のベクトルに対する行列演算を行い、
前記行列演算が行われた前記1次元のベクトルのスケーリングを行い、
スケーリングされた前記1次元のベクトルを行列化する
変換処理である
(17)乃至(22)のいずれかに記載の画像処理装置。
(24)
前記プライマリ変換を行うプライマリ変換部と、
前記制御部の制御に従って前記セカンダリ変換を行うセカンダリ変換部と
をさらに備える(17)乃至(23)のいずれかに記載の画像処理装置。
(25)
前記セカンダリ変換部により前記プライマリ変換係数が前記セカンダリ変換されて得られるセカンダリ変換係数または前記プライマリ変換係数に対して量子化を行う量子化部と、
前記量子化部により前記セカンダリ変換係数または前記プライマリ変換係数が量子化されて得られる量子化変換係数レベルを符号化する符号化部と
をさらに備える(17)乃至(24)のいずれかに記載の画像処理装置。
(26)
画像と前記画像の予測画像との差分である予測残差から得られる変換係数に対する変換処理のスキップを、サブブロック毎の変換係数の非ゼロ係数の数に基づいて、前記サブブロック毎に制御する
画像処理方法。
(27)
逆変換処理することにより画像と前記画像の予測画像との差分である予測残差が得られる変換係数に対する逆変換処理のスキップを、サブブロック毎の変換係数の非ゼロ係数の数に基づいて、前記サブブロック毎に制御する制御部
を備える画像処理装置。
(28)
前記制御部は、符号化データが復号されて得られるセカンダリ変換係数に対する逆セカンダリ変換のスキップを、前記サブブロック毎の前記変換係数の非ゼロ係数の数に基づいて、前記サブブロック毎に制御する
(27)に記載の画像処理装置。
(29)
前記セカンダリ変換係数に基づいて、前記逆セカンダリ変換をスキップさせるか否かを、前記サブブロック毎に判定する判定部をさらに備え、
前記制御部は、前記判定部による判定の結果に応じて、前記逆セカンダリ変換のスキップを、前記サブブロック毎に制御するように構成される
(27)または(28)に記載の画像処理装置。
(30)
前記判定部は、前記セカンダリ変換係数の非ゼロ係数の数が、所定の閾値以下の場合、前記逆セカンダリ変換をスキップさせるように判定する
(27)乃至(29)のいずれかに記載の画像処理装置。
(31)
前記逆セカンダリ変換は、
前記セカンダリ変換係数を1次元のベクトルに変換し、
前記1次元のベクトルに対する行列演算を行い、
前記行列演算が行われた前記1次元のベクトルのスケーリングを行い、
スケーリングされた前記1次元のベクトルを行列化する
変換処理である
(27)乃至(30)のいずれかに記載の画像処理装置。
(32)
前記制御部の制御に従って前記逆セカンダリ変換を行う逆セカンダリ変換部をさらに備える
(27)乃至(31)のいずれかに記載の画像処理装置。
(33)
前記逆セカンダリ変換部により前記セカンダリ変換係数が前記逆セカンダリ変換されて得られるプライマリ変換係数を前記予測残差に変換する逆プライマリ変換を行う逆プライマリ変換部をさらに備える
(27)乃至(32)のいずれかに記載の画像処理装置。
(34)
前記符号化データが復号されて得られる量子化変換係数レベルを逆量子化する逆量子化部をさらに備え、
前記逆セカンダリ変換部は、前記逆量子化部により前記量子化変換係数レベルが逆量子化されて得られる前記セカンダリ変換係数に対して、前記制御部の制御に従って前記逆セカンダリ変換を行うように構成される
(27)乃至(33)のいずれかに記載の画像処理装置。
(35)
前記符号化データを復号する復号部をさらに備え、
前記逆量子化部は、前記復号部により前記符号化データが復号されて得られる前記量子化変換係数レベルを逆量子化するように構成される
(27)乃至(34)のいずれかに記載の画像処理装置。
(36)
逆変換処理することにより画像と前記画像の予測画像との差分である予測残差が得られる変換係数に対する逆変換処理のスキップを、サブブロック毎の変換係数の非ゼロ係数の数に基づいて、前記サブブロック毎に制御する
画像処理方法。
(37)
変換係数に対する変換処理の行列を、前記変換処理の内容とスキャン方法とに基づいて設定する設定部と、
画像と前記画像の予測画像との差分である予測残差が変換処理されて得られる変換係数を1次元のベクトルに変換するラスタライズ部と、
前記設定部により設定された前記行列を用いて、前記1次元のベクトルに対する行列演算を行う行列演算部と、
前記行列演算が行われた前記1次元のベクトルに対してスケーリングを行うスケーリング部と、
スケーリングされた前記1次元のベクトルを行列化する行列化部と
を備える画像処理装置。
(38)
前記行列の候補を記憶する記憶部をさらに備え、
前記設定部は、前記変換処理の内容および前記スキャン方法に対応する前記行列を、前記記憶部に記憶されている前記行列の候補の中から選択することにより、前記行列を設定するように構成される
(37)に記載の画像処理装置。
(39)
前記設定部は、前記変換処理の内容と、前記ラスタライズ部および前記行列化部において採用される前記スキャン方法とに対応する前記行列を設定する
(37)または(38)に記載の画像処理装置。
(40)
前記設定部は、前記変換処理の内容を示す変換識別子と、前記スキャン方法に関する情報であるスキャン識別子とに基づいて前記行列を設定する
(37)乃至(39)のいずれかに記載の画像処理装置。
(41)
前記変換識別子は、前記予測残差がプライマリ変換されて得られるプライマリ変換係数に対するセカンダリ変換の内容を示すセカンダリ変換識別子であり、
前記設定部は、前記予測残差がプライマリ変換されて得られるプライマリ変換係数に対するセカンダリ変換の行列を、前記セカンダリ変換識別子および前記スキャン識別子に基づいて設定するように構成される
(37)乃至(40)のいずれかに記載の画像処理装置。
(42)
前記プライマリ変換は直交変換である
(37)乃至(41)のいずれかに記載の画像処理装置。
(43)
前記プライマリ変換を行うプライマリ変換部をさらに備える
(37)乃至(42)のいずれかに記載の画像処理装置。
(44)
前記行列化部によりスケーリングされた前記1次元のベクトルが行列化されて得られるセカンダリ変換係数を量子化する量子化部をさらに備える
(37)乃至(43)のいずれかに記載の画像処理装置。
(45)
前記量子化部により前記セカンダリ変換係数が量子化されて得られる量子化変換係数レベルを符号化する符号化部をさらに備える
(37)乃至(44)のいずれかに記載の画像処理装置。
(46)
変換係数に対する変換処理の行列を、前記変換処理の内容とスキャン方法とに基づいて設定し、
画像と前記画像の予測画像との差分である予測残差が変換処理されて得られる変換係数を1次元のベクトルに変換し、
設定された前記行列を用いて、前記1次元のベクトルに対する行列演算を行い、
前記行列演算が行われた前記1次元のベクトルに対してスケーリングを行い、
スケーリングされた前記1次元のベクトルを行列化する
画像処理方法。
(47)
変換係数に対する逆変換処理の行列を、前記逆変換処理の内容とスキャン方法とに基づいて設定する設定部と、
逆変換処理することにより画像と前記画像の予測画像との差分である予測残差が得られる変換係数を1次元のベクトルに変換するラスタライズ部と、
前記設定部により設定された前記行列を用いて、前記1次元のベクトルに対する行列演算を行う行列演算部と、
前記行列演算が行われた前記1次元のベクトルに対してスケーリングを行うスケーリング部と、
スケーリングされた前記1次元のベクトルを行列化する行列化部と
を備える画像処理装置。
(48)
前記行列の候補を記憶する記憶部をさらに備え、
前記設定部は、前記逆変換処理の内容および前記スキャン方法に対応する前記行列を、前記記憶部に記憶されている前記行列の候補の中から選択することにより、前記行列を設定するように構成される
(47)に記載の画像処理装置。
(49)
前記設定部は、前記逆変換処理の内容と、前記ラスタライズ部および前記行列化部において採用される前記スキャン方法とに対応する前記行列を設定する
(47)または(48)に記載の画像処理装置。
(50)
前記設定部は、前記逆変換処理の内容を示す変換識別子と、前記スキャン方法に関する情報であるスキャン識別子とに基づいて前記行列を設定する
(47)乃至(49)のいずれかに記載の画像処理装置。
(51)
前記変換識別子は、符号化データが復号されて得られるセカンダリ変換係数に対する逆セカンダリ変換の内容を示すセカンダリ変換識別子であり、
前記設定部は、前記逆セカンダリ変換の行列を、前記セカンダリ変換識別子および前記スキャン識別子に基づいて設定するように構成され、
前記ラスタライズ部は、前記セカンダリ変換係数を前記1次元のベクトルに変換するように構成され、
前記行列化部は、スケーリングされた前記1次元のベクトルを行列化してプライマリ変換係数を得るように構成される
(47)乃至(50)のいずれかに記載の画像処理装置。
(52)
前記行列化部により得られた前記プライマリ変換係数に対して前記逆プライマリ変換を行い、前記予測残差を得る逆プライマリ変換部をさらに備える
(47)乃至(51)のいずれかに記載の画像処理装置。
(53)
前記逆プライマリ変換は逆直交変換である
(47)乃至(52)のいずれかに記載の画像処理装置。
(54)
符号化データが復号されて得られる量子化変換係数レベルを逆量子化する逆量子化部をさらに備え、
前記ラスタライズ部は、前記逆量子化部により前記量子化変換係数レベルが逆量子化されて得られる前記セカンダリ変換係数を前記1次元のベクトルに変換するように構成される
(47)乃至(53)のいずれかに記載の画像処理装置。
(55)
前記符号化データを復号する復号部をさらに備え、
前記逆量子化部は、前記復号部により前記符号化データが復号されて得られる前記量子化変換係数レベルを逆量子化するように構成される
(47)乃至(54)のいずれかに記載の画像処理装置。
(56)
変換係数に対する逆変換処理の行列を、前記逆変換処理の内容とスキャン方法とに基づいて設定し、
逆変換処理することにより画像と前記画像の予測画像との差分である予測残差が得られる変換係数を1次元のベクトルに変換し、
設定された前記行列を用いて、前記1次元のベクトルに対する行列演算を行い、
前記行列演算が行われた前記1次元のベクトルに対してスケーリングを行い、
スケーリングされた前記1次元のベクトルを行列化する
画像処理方法。