以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.色差の直交変換
2.第1の実施の形態(画像復号装置、apt_flag, pt_idx)
3.第2の実施の形態(画像復号装置、ts_flag)
4.第3の実施の形態(画像復号装置、st_idx)
5.第4の実施の形態(画像符号化装置、apt_flag, pt_idx)
6.第5の実施の形態(画像符号化装置、ts_flag)
7.第6の実施の形態(画像符号化装置、st_idx)
8.その他
<1.色差の直交変換>
<プライマリ変換>
非特許文献1に記載のテストモデル(JEM4(Joint Exploration Test Model 4))においては、4Kなどの高解像度画像における符号化効率向上のために、CTU(Coding Tree Unit)サイズの最大サイズが128x128から256x256に拡張されている。さらに、ブロック分割の構造として、従来の4分木分割に加えて、水平/垂直方向の2分木が導入され、それに伴い、正方形の変換ブロックに加えて、長方形の変換ブロックも導入されている。
また、JEM4では、輝度について変換ブロック単位毎の、水平方向のプライマリ変換PThor(プライマリ水平変換とも称する)および垂直方向のプライマリ変換PTver(プライマリ垂直変換とも称する)毎に、適応的に複数の異なる直交変換から、プライマリ変換を選択する適応プライマリ変換(AMT(Adaptive Multiple Core Transforms))が開示されている。
より具体的には、輝度の変換ブロック(輝度変換ブロックとも称する)単位で、輝度に関する適応プライマリ変換を実施するか否かを示す適応プライマリ変換フラグapt_flag(amt_flag、cu_pt_flag、またはemt_flagとも称する)が0(偽)の場合、水平プライマリ変換および垂直プライマリ変換に適用する直交変換として、DCT(Discrete Cosine Transform)-IIまたはDST(Discrete Sine Transform)-VIIがモード情報によって(一意に)決定される。
これに対して、例えば、輝度に関する適応プライマリ変換フラグapt_flagが1(真)の場合、図1に示される表(LUT_TrSetToTrTypIdx)のように、水平方向(x方向)と垂直方向(y方向)のそれぞれについてのプライマリ変換の候補となる直交変換を含む変換セットTrSetが、4つの候補(Transform Set Idx = 0乃至3)の中から選択される。図1に示されるDST-VIIやDCT-VIII等は、直交変換のタイプを示しており、それぞれ、図2の表に示されるような関数が用いられる。
なお、図2の表において、各直交変換のタイプ毎に対応する識別子(変換タイプ識別子TrTypeIdx)が定義されている。例えば、直交変換のタイプ(Transform Type)がDCT-IIであれば、変換タイプ識別子TrTypeIdxの値は0が割り当てられている。
変換セットTransformSetの選択(決定)は、処理対象の変換ブロックが属するCU(Coding Unit)(符号化ユニットとも称する)の予測タイプによって異なる。例えば、予測タイプがイントラ予測であれば、図3に示される表(LUT_IntraModeToTrSet)のように、イントラ予測モード(IntraPredMode)に基づいて行われる。例えば、以下の式(1)および式(2)のように、各方向の変換セット(TrSetH, TrSetV)に対して、対応する変換セットTrSetを指定する変換セット識別子TrSetIdxを設定するように実施される。
TrSetH = LUT_IntraModeToTrSet [ IntraPredMode ] [ H(=0) ]
・・・(1)
TrSetV = LUT_IntraModeToTrSet [ IntraPredMode ] [ V(=1) ]
・・・(2)
ここで、TrSetHは、プライマリ水平変換PThorの変換セット(プライマリ水平変換セットとも称する)を示し、TrSetVは、プライマリ垂直変換PTverの変換セット(プライマリすちょく変換セットとも称する)を示す。また、ルックアップテーブルLUT_IntraModeToTrSetは、図3の対応表を示している。ルックアップテーブルLUT_IntraModeToTrSet[][]の1番目の配列は、イントラ予測モードIntraPredModeを引数とし、2番目の配列は、{H=0, V=1}を引数とする。
例えば、イントラ予測モード番号18(IntraPredMode == 18)の場合、プライマリ水平変換セットTrSetHとして、図1の表(LUT_TrSetToTrTypeIdx)に示される変換セット識別子TrSetIdx = 2の変換セットが選択され、プライマリ垂直変換セットTrSetVとして、図1の表に示される変換セット識別子TrSetIdx = 0の変換セットが選択される。
予測タイプがインター予測であれば、各方向の変換セット(TrSetH、およびTrSetV)に対して、インター予測用の変換セットTrSetを指定する変換セット識別子TrSetIdx( = InterTrSetIdx)が以下の式(3)や式(4)のように設定される。例えば、図1の表であれば、InterTrSetの値は3である。
TrSetH = InterTrSetIdx
・・・(3)
TrSetV = InterTrSetIdx
・・・(4)
さらに、選択された変換セットTrSetのうちのどの直交変換をプライマリ水平変換に適用するかが、プライマリ水平変換指定フラグpt_hor_flagによって選択される。また、選択された変換セットTrSetのうちのどの直交変換をプライマリ垂直変換に適用するかが、プライマリ垂直変換指定フラグpt_ver_flagによって選択される。例えば、以下の式(5)および式(6)のように、プライマリ{水平, 垂直}変換セットTrSet{H,V}、とプライマリ{水平, 垂直}変換指定フラグpt_{hor,ver}_flagを引数として、図1に示される変換セットの定義表(LUT_TrSetToTrTypeIdx)から導出される。
TrTypeIdxH = LUT_TrSetToTrTypeIdx [ TrSetH ] [ pt_hor_flag ]
・・・(5)
TrTypeIdxV = LUT_TrSetToTrTypeIdx [ TrSetV ] [ pt_ver_flag ]
・・・(6)
例えば、イントラ予測モード番号18(IntraPredMode == 18)の場合、図3の表から、プライマリ水平変換セットTrSetHの変換セット識別子TrSetIdxの値は2であるため、図1の変換セット定義表LUT_TrSetToTrTypeIdx上で変換セット識別子TrSetIdx == 2である変換セットからプライマリ水平変換に適用する直交変換が選択(指定)される。すなわち、プライマリ水平変換指定フラグpt_hor_flagが0の場合、プライマリ水平変換PThorの直交変換のタイプを指定する水平変換タイプ識別子TrTypeIdxHに、図1の表のように、DST-VIIを示す変換タイプ識別子TrTypeIdxの値「4」が設定され、プライマリ水平変換指定フラグpt_hor_flagが1の場合、水平変換タイプ識別子TrTypeIdxHに、DCT-Vを示す変換タイプ識別子TrTypeIdxの値「1」が設定される。
なお、プライマリ水平変換指定フラグpt_hor_flagおよびプライマリ垂直変換指定フラグpt_ver_flagからプライマリ変換識別子pt_idxが、以下の式(7)に基づいて導出される。
pt_idx = (pt_ver_flag << 1) + pt_hor_flag
・・・(7)
すなわち、プライマリ変換識別子pt_idxの上位1bitは、プライマリ垂直変換指定フラグの値に対応し、下位1bitは、プライマリ水平変換指定フラグの値に対応する。導出されたプライマリ変換識別子pt_idxのbin列に対して、算術符号化を適用して、ビット列を生成することで、符号化が実施される。なお、pt_idxは上位1bitを、プライマリ水平変換指定フラグ、下位1bitをプライマリ垂直変換指定フラグとして設定もよい。
これに対して、色差(Cb, Cr)の変換ブロックについては、適応プライマリ変換は適用されず、プライマリ水平変換およびプライマリ垂直変換の直交変換のタイプとして、DCT-IIが常に選択される。
図4のAは、変換ユニットTUのシンタックステーブルの一例であって、図4のBは、それに対応するセマンティクスの例を示している。図4のAに示されるシンタックスにおいて符号SYN11が付された行に示される残差データ有無フラグcbf[x0][y0][compID](coded_block_flag)は、図4のBに示されるように、色信号識別子compIDで指定される色信号の変換ブロックに非ゼロ係数が1個以上存在するか否かを示すフラグである。該フラグが1(真)の場合、対応する変換ブロックに非ゼロ係数が1個以上存在することを示し、該フラグが0(偽)の場合、対応する変換ブロックに非ゼロ係数が存在しないことを示す。なお、便宜上、輝度の残差データ有無フラグcbf[x0][y0][COMPONENT_Y]をcbf_lumaと称する場合もある(cbf_luma = cbf[x0][y0][COMPONENT_Y])。
また、図4のAに示される適応プライマリ変換有効フラグapt_enabled_flagは、図4のBに示されるように、適応プライマリ変換の許可に関する情報である。この値が1(真)の場合、符号化データ上に、適応プライマリ変換に関する情報が存在しうることを示す。また、この値が0(偽)の場合、符号化データ上に、適応プライマリ変換に関する情報が存在しないを示す。
また、図4のAに示されるシンタックスにおいて符号SYN12が付された行に示す輝度変換ブロックに関する適応プライマリ変換フラグapt_flagは、図4のBに示されるように、輝度の変換ブロックに対して、適応プライマリ変換を適用するか否かを示すフラグである。この値が1(真)の場合、適応プライマリ変換を適用し、0(偽)の場合、適用プライマリ変換を適用しない。図4のAのシンタックステーブルに示される通り、輝度の残差データ有無フラグcbf_lumaが「1」(すなわち真)であり、かつ、適応プライマリ変換有効フラグapt_enabled_flagが「1」(すなわち真)の場合、輝度の適応プライマリ変換フラグapt_flagが符号化(復号)される。符号化データ上にapt_flagが存在しない場合は、apt_flagの値は0であると解釈する。
さらに、図4のAに示されるシンタックスにおいて、符号SYN13が付された行に示す色信号識別子compIDで指定される色信号の変換ブロックの残差データresidual_coding()は、対応する色信号の残差データ有無フラグが1(真)の場合、符号化(復号)される。
図5は、residual_codingのシンタックステーブルの例を示す。図5に示されるシンタックステーブルにおいて、符号SYN22に示す輝度のプライマリ変換識別子pt_idxは、シンタックステーブルに示される通り、輝度の適応プライマリ変換フラグapt_flagが1(真)であって、変換量子化バイパスフラグtransquant_bypass_flagが0(偽)であって、変換スキップフラグts_flagが0(偽)であって、色信号識別子compIDが輝度を示す場合であって(compID == COMPONENT_Y)、変換ブロックに存在する非ゼロ係数の総数numSigが所定の閾値ptNumSigTH以上であって、変換ブロックの長辺(max(log2TBWSize, log2TBHSize))が所定の閾値maxPTSize以下の場合に、符号化(復号)される。符号化データ上に輝度のプライマリ変換識別子pt_idxが存在しない場合は、pt_idxの値は0であると解釈する。
非特許文献1では、輝度(Y)に対してのみ、適応プライマリ変換が適用されうるが、色差(Cb, Cr)に対しては適用されない。したがって、色差に関するプライマリ変換の符号化効率が、輝度と比較して低減するおそれがあった。
これに対して、例えば、輝度(Y)と同様に、色差(Cb, Cr)の変換ブロック毎に、適応プライマリ変換フラグapt_flag、プライマリ変換識別子pt_idxを明示的に符号化することが考えられる。しかしながら、この方法の場合、色差に関する適応プライマリ変換フラグapt_flagやプライマリ変換識別子pt_idxを符号化するため、符号量が増大し、符号化効率が低減するおそれがあった。
なお、付言するに、この場合、符号化側においては、色信号(Y, Cb, Cr)毎に適応プライマリ変換の選択の有無、およびプライマリ変換識別子の決定に関するモード判定をする必要があり、処理量が増大するおそれがあった。また、復号側においても、色信号(Y, Cb, Cr)毎に適応プライマリ変換フラグapt_flagやプライマリ変換識別子pt_idxを復号しなければならず、処理量が増大するおそれがあった。
<輝度のパラメータの利用>
そこで、色差の(逆)直交変換に関する情報を輝度の(逆)直交変換に関する情報に基づいて導出するようにする。つまり、輝度の(逆)直交変換に関する情報に基づいて導出された色差の(逆)直交変換に関する情報を用いて、色差の(逆)直交変換を行うようにする。例えば、画像処理装置において、輝度の(逆)直交変換に関する情報に基づいて導出された色差の(逆)直交変換に関する情報を用いて、色差の(逆)直交変換を行う(逆)直交変換部を設けるようにする。
このようにすることにより、色差の(逆)直交変換に関する情報の符号化・復号を省略することができるので、符号量の増大を抑制し、符号化効率の低減を抑制することができる。また、符号化・復号の負荷の増大も抑制することができる。なお、本明細書においては、直交変換と逆直交変換は互いに逆処理であり、例えば直交変換されたデータを逆直交変換することにより、直交変換前のデータを復元することができるものとする。また、直交変換に関する情報は、直交変換に利用される情報であるが、逆直交変換に利用することが可能な場合もある。そして、逆直交変換に関する情報は、逆直交変換に利用される情報であるが、直交変換に利用することが可能な場合もある。つまり、本明細書においては、直交変換に関する情報と逆直交変換に関する情報とが互いに同一の情報を指すこともあり得る(互いに同一の情報が含まれていてもよい)。以上のことは、プライマリ変換と逆プライマリ変換、セカンダリ変換と逆セカンダリ変換との間でも同様である。
この(逆)直交変換に関する情報の内容は任意である。例えば、図6の表に示されるように、処理対象の変換ブロックにおいて、複数の異なる逆直交変換の中からいずれかを適応的に選択して(逆)プライマリ変換として用いる適応(逆)プライマリ変換を適用するかを示す適応プライマリ変換フラグapt_flagを含むようにしてもよい。また、垂直方向および水平方向の(逆)プライマリ変換にどの(逆)プライマリ変換を適用するかを示すプライマリ変換識別子pt_idxを含むようにしてもよい。
例えば、色差(Cb)の適応プライマリ変換フラグapt_flag[Cb]と色差(Cr)の適応プライマリ変換フラグapt_flag[Cr]とをそれぞれ、輝度の適応プライマリ変換フラグapt_flag[Y]に基づいて導出することにより、色差(Cb/Cr)の符号化効率の低減を抑制することができる。また、符号量に関するオーバーヘッドの増大も抑制することができる。また、例えば、色差(Cb)のプライマリ変換識別子pt_idx[Cb]と色差(Cr)のプライマリ変換識別子pt_idx[Cr]とをそれぞれ、輝度のプライマリ変換識別子pt_idx[Y]に基づいて導出することにより、色差(Cb/Cr)の符号化効率の低減を抑制することができる。また、符号量に関するオーバーヘッドの増大も抑制することができる。なお、色差のプライマリ変換識別子は、CbとCrとで共通であってもよい(共用してもよい)。
図7の表を参照してさらに説明する。従来は、No.#0の行のように、色差においては適応(逆)プライマリ変換が採用されず、色差の適応プライマリ変換フラグapt_flagやプライマリ変換識別子pt_idxは、常に省略されていた。この場合、適応(逆)プライマリ変換を用いないことから、上述のように符号化効率が低減するおそれがあった。
これに対して、No.#1の行のように、色差においても適応(逆)プライマリ変換を適用可能とし、さらに、常に、色差の適応プライマリ変換フラグapt_flagやプライマリ変換識別子pt_idxを、輝度の適応プライマリ変換フラグapt_flagやプライマリ変換識別子pt_idxから推定するようにする。例えば、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]の値に、輝度の適応プライマリ変換フラグapt_flag[Y]の値をセットするようにしてもよい。また、例えば、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]が真の場合、色差のプライマリ変換識別子pt_idx[Cb/Cr]の値に輝度のプライマリ変換識別子pt_idx[Y]の値をセットし、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]が偽の場合、色差のプライマリ変換識別子pt_idx[Cb/Cr]の値に所定値をセットするようにしてもよい。このようにすることにより、色差に対しても適応(逆)プライマリ変換を適用することができるだけでなく、色差の適応プライマリ変換フラグapt_flagやプライマリ変換識別子pt_idxの伝送(符号化・復号)を省略することができるので、符号化効率の低減を抑制することができる。また、符号化や復号の負荷の増大も抑制することができる。
また、No.#2の行のように、色差においても適応(逆)プライマリ変換を適用可能とし、さらに、例えば、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測(CuPredMode == MODE_INTER)である場合、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]の値に輝度の適応プライマリ変換フラグapt_flag[Y]の値をセットし、その符号化ブロックの予測タイプがイントラ予測である場合、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]の値に0(偽)をセットするようにしてもよい。このようにすることにより、色差に対しても適応(逆)プライマリ変換を適用することができるだけでなく、残差信号の傾向が類似するインター予測モードの場合のみ、輝度の適応プライマリ変換フラグの値を利用するようにすることができるので、符号化効率の低減をより抑制することができる。
さらに、No.#3の行のように、色差においても適応(逆)プライマリ変換を適用可能とし、さらに、例えば、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、または、輝度と色差とで予測モードが一致するイントラ予測である場合、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]の値に輝度の適応プライマリ変換フラグapt_flag[Y]の値をセットし、その符号化ブロックの予測タイプが輝度と色差とで予測モードが一致しないイントラ予測である場合、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]の値に0(偽)をセットするようにしてもよい。このようにすることにより、色差に対しても適応(逆)プライマリ変換を適用することができるだけでなく、残差信号の傾向が類似する予測モードの場合のみ、輝度の適応プライマリ変換フラグの値を利用するようにすることができるので、符号化効率の低減をより抑制することができる。
また、No.#4の行のように、色差においても適応(逆)プライマリ変換を適用可能とし、さらに、例えば、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、または、予測モードがイントラブロックコピーのイントラ予測である場合、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]の値に輝度の適応プライマリ変換フラグapt_flag[Y]の値をセットし、その符号化ブロックの予測タイプが、予測モードがイントラブロックコピー(IntraBC, Intra Block Copy, 画面内動き補償とも称する)でないイントラ予測である場合、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]の値に0(偽)をセットするようにしてもよい。このようにすることにより、色差に対しても適応(逆)プライマリ変換を適用することができるだけでなく、残差信号の傾向が類似する予測モードの場合のみ、輝度の適応プライマリ変換フラグの値を利用するようにすることができるので、符号化効率の低減をより抑制することができる。
また、No.#5の行のように、色差においても適応(逆)プライマリ変換を適用可能とし、さらに、例えば、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]を輝度の適応プライマリ変換フラグapt_flag[Y]に基づいて推定するかを示す色差適応プライマリ変換情報推定フラグchroma_apt_info_infer_flagが1(真)の場合、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]の値に輝度の適応プライマリ変換フラグapt_flag[Y]の値をセットし、色差適応プライマリ変換情報推定フラグchroma_apt_info_infer_flagが0(偽)の場合、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]の値に0(偽)をセットするようにしてもよい。このようにすることにより、輝度の適応プライマリ変換フラグの値を利用するか否かを、色差適応プライマリ変換情報推定フラグchroma_apt_info_infer_flagを用いて明示的に制御することができる。したがって、容易に、十分に大きな効果が得られる場合のみ輝度の適応プライマリ変換フラグの値を利用させるようにすることができるので、符号化効率の低減をより抑制することができる。
また、No.#6の行のように、色差においても適応(逆)プライマリ変換を適用可能とし、さらに、例えば、色差の処理対象の変換ブロックの短辺のサイズが所定の閾値以上の場合、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]の値に輝度の適応プライマリ変換フラグapt_flag[Y]の値をセットし、その変換ブロックの短辺のサイズがその閾値より小さい場合、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]の値に0(偽)をセットするようにしてもよい。このようにすることにより、十分に大きな効果が得られない小さな変換ブロックに対して適応(逆)プライマリ変換を適用しないようにすることができるので、符号化効率の低減をより抑制することができるとともに、この適応(逆)プライマリ変換を、十分に大きな効果が得られないほど小さい変換ブロックに適用することによる不要な回路規模の増大を抑制することができる。
また、No.#7の行のように、色差においても適応(逆)プライマリ変換を適用可能とし、さらに、例えば、色差の処理対象の変換ブロックの横幅のサイズが所定の閾値以下の場合、(逆)プライマリ水平変換の変換タイプを所定の変換タイプにセットし、その変換ブロックの横幅のサイズがその閾値よりも大きい場合、(逆)プライマリ水平変換の変換タイプを水平変換セットおよびプライマリ水平変換指定フラグに基づいてセットするようにしてもよい。同様に、色差の処理対象の変換ブロックの縦幅のサイズが所定の閾値以下の場合、(逆)プライマリ垂直変換の変換タイプを所定の変換タイプにセットし、その変換ブロックの縦幅のサイズがその閾値よりも大きい場合、(逆)プライマリ垂直変換の変換タイプを垂直変換セットおよびプライマリ垂直変換指定フラグに基づいてセットするようにしてもよい。このようにすることにより、十分に大きな効果が得られない程幅が狭い変換ブロックに対して(その幅方向の(逆)プライマリ変換に対して)、適応(逆)プライマリ変換を適用しないようにすることができるので、符号化効率の低減をより抑制することができるとともに、この適応(逆)プライマリ変換を、十分に大きな効果が得られないほど幅が狭い変換ブロックに適用することによる不要な回路規模の増大を抑制することができる。
なお、以上に説明した各ケースを任意に組み合わせることもできる。例えば、No.#8の行のように、No.#2の行のケースと、No.#7の行のケースとを組み合わせるようにしてもよい。このようにすることにより、各ケースにおいて得られる効果を得ることができる。また、上述した各ケースを、上述していない他のケースと組み合わせることもできる。例えば、No.#2の行のケースにおいて、処理対象の符号化ブロックの予測タイプがイントラ予測である場合、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]を伝送する(シグナリングする)ようにしてもよい。つまり、この場合、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]の符号化・復号が行われる。また、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]の値が1(真)の場合、さらに、色差の適応プライマリ変換識別子pt_idx[Cb/Cr]を伝送する(シグナリングする)ようにしてもよい。すなわち、この場合、色差の適応プライマリ変換識別子pt_idx[Cb/Cr]の符号化・復号が行われる。
<CU,PU、およびTUの形状>
ここでビットストリーム(符号化データ)における動画像の部分領域(処理単位)であるCU(Coding Unit),PU(Prediction Unit)、およびTUの形状について説明する。図8に示されるCU,PU、およびTU(Transform Unit)は、JVET-C0024, “EE2.1: Quadtree plus binary tree structure integration with JEM tools”に記載されているQTBT(Quad tree plus binary tree)のCU,PU、およびTUである。具体的には、CUのブロック分割では、1つのブロックを4(=2x2)個だけでなく、2(=1x2,2x1)個のサブブロックにも分割することができる。即ち、CUのブロック分割は、1つのブロックを4個または2個のサブブロックへの分割を再帰的に繰り返すことにより行われ、結果として四分木(Quad-Tree)状または水平方向もしくは垂直方向の2分木(Binary-Tree)状のツリー構造が形成される。
その結果、CUの形状は、正方形だけでなく、長方形である可能性がある。例えば、LCU(Largest Coding Unit)サイズが128x128である場合、CUのサイズ(水平方向のサイズw×垂直方向のサイズh)は、図8に示されるように、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といった長方形のサイズである可能性がある。なお、PUとTUは、CUと同一である。
さらに、TUには、輝度(Y)の変換ブロック、および色差(Cb/Cr)の変換ブロックが含まれる。色フォーマットが4:2:0(例えば、YUV420)の場合、輝度のピクチャサイズに対する色差のピクチャサイズの比は、縦幅、横幅ともに1/2である。したがって、輝度の変換ブロックサイズが8x4であれば、対応する色差の変換ブロックサイズは4x2となる。また、色フォーマットが4:2:2(例えば、YUV422)の場合、輝度のピクチャサイズに対する色差のピクチャサイズの比は、縦幅が1/2、横幅が1となる。したがって、輝度の変換ブロックサイズが8x4であれば、対応する色差の変換ブロックサイズは8x2となる。また、色フォーマットが4:4:4(例えば、YUV444)の場合、輝度のピクチャサイズに対する色差のピクチャサイズの比は、縦幅が1、横幅が1となる。したがって、輝度の変換ブロックサイズが8x4であれば、対応する色差の変換ブロックサイズは8x4である。
なお、Iスライスに関しては、輝度(Y)と色差(Cb/Cr)とで別々のCUとして符号化してもよい。この場合、輝度と色差とで、異なるCUの分割構造をとることができるため、Iスライスの符号化効率が向上するという効果を有する。以下では、便宜上、同一CU内には、輝度、および色差の情報が含まれているものとして説明するが、これに限定されない。
<2.第1の実施の形態>
<画像復号装置>
図9は、本技術を適用した画像処理装置の一態様である画像復号装置の構成の一例を示すブロック図である。図9に示される画像復号装置100は、AVCやHEVCのように、画像とその予測画像との予測残差が符号化された符号化データを復号する装置である。例えば、画像復号装置100は、HEVCに提案された技術や、JVET(Joint Video Exploration Team)にて提案された技術を実装している。
図9において、画像復号装置100は、復号部111、逆量子化部112、逆変換部113、演算部114、フレームメモリ115、および予測部116を備えている。なお、予測部116は、不図示のイントラ予測部、およびインター予測部を備えている。画像復号装置100は、符号化データ#1(bitstream)を復号することによって、動画像#2を生成するための装置である。
復号部111は、符号化データ#1を入力とし、シンタックステーブルの定義に沿って、符号化データ#1のビット列から、各シンタックス要素のシンタックス値を可変長復号する。さらに、シンタックス要素には、ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、残差情報Rinfoなどの情報が含まれる。
VPS/SPS/PPS/スライスヘッダSHなどのヘッダ情報Hinfoには、画像サイズ(横幅PicWidth、縦幅PicHeight)、ビット深度(輝度bitDepthY, 色差bitDepthC)、CUサイズの最大値MaxCUSize/最小値MinCUSize、4分木分割(Quad-tree分割ともいう)の最大深度MaxQTDepth/最小深度MinQTDepth、2分木分割(Binary-tree分割)の最大深度MaxBTDepth/最小深度MinBTDepth、変換スキップブロックの最大値MaxTSSize(最大変換スキップブロックサイズともいう)、各符号化ツールのオンオフフラグ(有効フラグともいう)などを規定する情報が含まれる。
例えば、ヘッダ情報Hinfoに含まれる符号化ツールのオンオフフラグとしては、以下に示す変換、量子化処理に関わるオンオフフラグがある。なお、符号化ツールのオンオフフラグは、該符号化ツールに関わるシンタックスが符号化データ中に存在するか否かを示すフラグとも解釈することができる。また、オンオフフラグの値が1(真)の場合、該符号化ツールが使用可能であることを示し、オンオフフラグの値が0(偽)の場合、該符号化ツールが使用不可であることを示す。なお、フラグ値の解釈は逆であってもよい。
適応プライマリ変換有効フラグapt_enabled_flag(adaptive_primary_transform_enabled_flag、adaptive_pt_enabled_flag、またはamt_enabled_flagとも称する)は、変換処理およびその逆処理の1つとして、適応的なプライマリ変換の選択が可能な符号化ツール(適応プライマリ変換ともいう)が使用可能か示すフラグである。
セカンダリ変換有効フラグst_enabled_flagは、変換処理およびその逆処理の1つとして、セカンダリ変換/逆セカンダリ変換をする符号化ツールが使用可能か否かを示すフラグである。
変換量子化バイパス有効フラグtransquant_bypass_enabled_flagは、変換・量子化、およびその逆処理の1つとして、変換と量子化/逆量子化と逆変換をスキップする符号化ツールが使用可能か否かを示すフラグである。
変換スキップフラグ有効フラグts_enabled_flagは、変換処理およびその逆処理の1つとして、2次元変換スキップや1次元変換スキップが使用可能か否かを示すフラグである。その2次元変換スキップは、プライマリ変換とセカンダリ変換を含む直交変換およびその逆処理(逆直交変換)をスキップする符号化ツールである。また、1次元変換スキップは、プライマリ変換のうち、水平方向または垂直方向のプライマリ変換、および、それに対応する逆変換(逆プライマリ変換)、並びに、セカンダリ変換とその逆セカンダリ変換をスキップする符号化ツールである。
予測モード情報Pinfoには、さらに、処理対象PUのPUサイズ(予測ブロックサイズ)PUSize、イントラ予測モード情報IPinfo(例えば、JCTVC-W1005, 7.3.8.5 Coding Unit syntax中のprev_intra_luma_pred_flag, mpm_idx, rem_intra_pred_mode、そのシンタックスから導出される輝度イントラ予測モードIntraPredModeY、色差イントラ予測モードIntraPredModeC等)、動き予測情報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)等が含まれる。
また、変換情報Tinfoには、例えば、処理対象変換ブロックの横幅サイズTBWidthおよび縦幅TBHeight、(逆)変換および(逆)量子化の処理をスキップするか否かを示す変換量子化バイパスフラグtransquant_bypass_flag、2次元変換スキップを適用するか否かを示す変換スキップフラグts_flag、対象変換ブロックにおいて適応プライマリ変換を適用するかを示す適応プライマリ変換フラグapt_flag、垂直方向および水平方向の(逆)プライマリ変換にどの(逆)プライマリ変換を適用するかを示すプライマリ変換識別子pt_idx、どの(逆)セカンダリ変換を適用するかを示すセカンダリ変換識別子st_idx(dnsst_idx、nsst_idx、またはrot_idxとも称する)、スキャン識別子scanIdx、量子化パラメータqp、量子化マトリックスscaling_matrix等のシンタックスが含まれる。なお、処理対象変換ブロックの横幅サイズTBWidthおよび縦幅TBHeightの代わりに、2を底とする各TBWidth、TBHeightの対数値log2TBWidth(log2TBWSize, log2TBWとも称する)、log2TBHeight(log2TBHSize, log2TBHとも称する)が含まれるようにしてもよい。
残差情報Rinfoには、例えば、残差データ有無フラグ(cbf(coded_block_flag))、ラスト非ゼロ係数X座標(last_sig_coeff_x_pos)、ラスト非ゼロ係数Y座標(last_sig_coeff_y_pos)、サブブロック非ゼロ係数有無フラグ(coded_sub_block_flag)、非ゼロ係数有無フラグ(sig_coeff_flag)、非ゼロ係数のレベルが1より大きいかを示すフラグ(gr1_flag)(GR1フラグとも称する)、非ゼロ係数のレベルが2より大きいかを示すフラグ(gr2_flag)(GR2フラグとも称する)、非ゼロ係数の正負を示す符号(sign_flag)(サイン符号とも称する)、並びに、非ゼロ係数の残余レベル(coeff_abs_level_remaining)(非ゼロ係数残余レベルとも称する)等が含まれるようにしてもよい。
復号部111は、残差情報Rinfoを参照して、各変換ブロック内の各係数位置の量子化変換係数レベルlevelを導出する。復号部111は、復号して得た予測モード情報Pinfo、量子化変換係数レベルlevel、変換情報Tinfoを各ブロックへ供給する。例えば、復号部111は、予測モード情報Pinfoを逆変換部113および予測部116に供給し、量子化変換係数レベルlevelを、逆量子化部112に供給し、変換情報Tinfoを、逆変換部113および逆量子化部112に供給する。
逆量子化部112は、変換情報Tinfo、および量子化変換係数レベルlevelを入力とし、変換情報Tinfoに基づいて、量子化変換係数レベルlevelの値をスケーリング(逆量子化)し、逆量子化後の変換係数Coeff_IQを逆変換部113へ出力する。
逆変換部113は、変換係数Coeff_IQ、変換情報Tinfo、予測モード情報Pinfoを入力とし、変換情報Tinfoや予測モード情報Pinfo等に基づいて、変換係数Coeff_IQに対して、逆変換を適用し、予測残差D'を導出し、それを演算部114へ出力する。なお、この逆変換は、符号化側等において行われる変換処理の逆処理である。例えば、符号化側等において行われる直交変換の逆処理である逆直交変換等がこの逆変換に含まれる。また、例えば符号化側において直交変換としてプライマリ変換やセカンダリ変換が行われる場合、プライマリ変換の逆処理である逆プライマリ変換や、セカンダリ変換の逆処理である逆セカンダリ変換等がこの逆変換に含まれる。逆変換部113の詳細については、後述する。
演算部114は、予測残差D'と、予測部116より供給される予測画像Pとを入力とし、以下の式(8)に示すように予測残差D'と予測残差D'に対応する予測画像P(予測信号)とを加算し、局所復号画像Recを導出し、それをフレームメモリ115または画像復号装置100の外部に供給する。
Rec = D' + P
・・・(8)
フレームメモリ115は、演算部114より供給される局所復号画像Recを入力とし、ピクチャ単位毎の復号画像を再構築して、フレームメモリ115内のバッファへ格納する。フレームメモリ115は、予測部116の予測モード情報Pinfoによって指定される復号画像を参照画像としてバッファより読み出し、予測部116へ供給する。また、フレームメモリ115は、復号画像の生成に係るヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfoなどをフレームメモリ内のバッファへ格納するようにしても良い。
予測部116は、予測モード情報Pinfoを入力とし、予測モード情報Pinfoによって指定される予測方法により、予測モード情報PInfoによって指定される、フレームメモリ115に格納された復号画像を参照画像として予測画像Pを生成し、演算部114へ出力する。
<逆変換部>
図10は、図9の画像復号装置100が備える逆変換部113の主な構成例を示すブロック図である。図9に示されるように、逆変換部113は、スイッチ121、逆セカンダリ変換部122、および逆プライマリ変換部123から構成される。
スイッチ121は、変換係数Coeff_IQ、および変換スキップフラグts_flag[compID]を入力とする。変換スキップフラグts_flag[compID]の値がNO_TS(=0)の場合、すなわち、変換スキップを適用しない場合、スイッチ121は、逆セカンダリ変換部122へ変換係数Coeff_IQを出力する。また、変換スキップフラグts_flag[compID]の値が2D_TS(=1)の場合、すなわち、2次元変換スキップを適用することを示す場合、スイッチ121は、逆セカンダリ変換部122および逆プライマリ変換部123をスキップし、変換係数Coeff_IQを予測残差D'として出力する。
逆セカンダリ変換部122は、例えば直交変換等の所定の変換処理であるセカンダリ変換の逆処理である逆セカンダリ変換に関する処理を行う。例えば、逆セカンダリ変換部122は、セカンダリ変換識別子st_idx、変換係数のスキャン方法を示すスキャン識別子scanIdx、および変換係数Coeff_IQを入力とし、逆セカンダリ変換後の変換係数Coeff_IS(プライマリ変換係数Coeff_Pともいうともいう)を導出し、逆プライマリ変換部123に供給する。より具体的には、セカンダリ変換識別子st_idxが、逆セカンダリ変換を適用することを示す場合(st_idx>0)、逆セカンダリ変換部122は、変換係数Coeff_IQに対して、セカンダリ変換識別子st_idxに対応する逆セカンダリ変換の処理を実行し、逆セカンダリ変換後の変換係数Coeff_ISを出力する。セカンダリ変換識別子st_idxが、逆セカンダリ変換を適用しないことを示す場合(st_idx==0)、逆セカンダリ変換部122は、逆セカンダリ変換をスキップし、変換係数Coeff_IQを逆セカンダリ変換後の変換係数Coeff_ISとして出力する。
逆プライマリ変換部123は、例えば直交変換等の所定の変換処理であるプライマリ変換の逆処理である逆プライマリ変換に関する処理を行う。例えば、逆プライマリ変換部123は、色信号識別子compID、輝度の適応プライマリ変換フラグapt_flag[COMPONENT_Y]、輝度のプライマリ変換識別子pt_idx[COMPONENT_Y]、予測モード情報PInfo、変換ブロックのサイズ(横幅の対数値log2TBWSize, 縦幅の対数値log2TBHSize)および逆セカンダリ変換後の変換係数Coeff_ISを入力とする。逆プライマリ変換部123は、予測モード情報PInfo、色信号識別子compID、輝度の適応プライマリ変換フラグapt_flag[COMPONENT_Y]、輝度のプライマリ変換識別子pt_idx[COMPONENT_Y]、および輝度のプライマリ変換識別子pt_idx[COMPONENT_Y]を参照して、色信号識別子compIDで指定される色信号の逆プライマリ水平変換の変換タイプTrTypeIdxH、および逆プライマリ垂直変換の変換タイプTrTypeIdxVを選択し、逆セカンダリ後の変換係数Coeff_ISに対して、逆プライマリ垂直変換タイプTrTypeIdxVと変換ブロックの縦幅log2TBHSizeで定まる逆プライマリ垂直変換、および逆プライマリ水平変換タイプTrTypeIdxHと変換ブロックの横幅log2TBWSizeで定まる逆プライマリ水平変換をして、逆プライマリ変換後の予測残差D'を導出し、出力する。
<逆プライマリ変換部>
図11に示されるように、逆プライマリ変換部123は、色差適応プライマリ変換情報導出部131、逆プライマリ変換選択部132、逆プライマリ垂直変換部133、および逆プライマリ水平変換部134を有する。
色差適応プライマリ変換情報導出部131は、色信号識別子compIDが色差を示す場合(compID==COMPONENT_Cb, COMPONENT_Cr)、色差変換ブロックに対応する輝度変換ブロックの適応プライマリ変換情報(apt_flag[COMPONENT_Y], pt_idx[COMPONENT_Y])を用いて、色差の適応プライマリ変換情報(apt_flag[compID], pt_idx[compID] (compID=COMPONENT_Cb, COMPONENT_Cr))を導出し、その結果を逆プライマリ変換選択部132に供給する。
<色差適応プライマリ変換情報導出部>
図11は、色差適応プライマリ変換情報導出部131が有する機能の主な構成例を示す機能ブロック図である。図11に示されるように、色差適応プライマリ変換情報導出部131は、apt_flag導出部151およびpt_idx導出部152を有する。apt_flag導出部151は、色差の適応プライマリ変換フラグapt_flagの導出に関する処理を行う。
例えば、apt_flag導出部151は、処理対象の色差変換ブロックに関する適応プライマリ変換フラグapt_flag[compID] (compID=COMPONET_Cb or COMPONENT_Cr)を、該色差の変換ブロックに対応する輝度変換ブロックに関する適応プライマリ変換フラグapt_flag[COMPONENT_Y]に基づいて、以下の式(9)のように導出する。
apt_flag[compID] = apt_flag[COMPONENT_Y]
(ただし、compID=COMPONENT_Cb, COMPONENT_Cr)
・・・(9)
すなわち、apt_flag導出部151は、色差の適応プライマリ変換フラグapt_flag[compID](compID=COMPONENT_Cb, COMPONENT_Cr)へ輝度の適応プライマリ変換フラグapt_flag[COMPONENT_Y]の値を設定する。
なお、式(9)の変形例として、apt_flag導出部151が、輝度の残差データ有無フラグcbf_lumaを参照して、以下の式(10)のように色差の適応プライマリ変換フラグapt_flag[compID]を導出するようにしてもよい。
apt_flag[compID] = cbf_luma ? apt_flag[COMPONENT_Y] : 0
・・・(10)
すなわち、apt_flag導出部151は、輝度の残差データ有無フラグcbf_lumaが1(真)の場合、色差の適応プライマリ変換フラグapt_flag[compID](compID=COMPONENT_Cb, COMPONENT_Cr)へ輝度の適応プライマリ変換フラグapt_flag[COMPONENT_Y]の値を設定し、それ以外の場合(輝度の残差データ有無フラグcbf_lumaが0(偽)の場合)、0を設定する。
なお、apt_flag[COMPONENT_Y]が符号化データ上に存在しない場合、該フラグの値を0と設定する場合は、輝度の残差データ有無フラグを参照する必要はない。しかしながら、apt_flag[COMPONENT_Y]を0へ初期化する動作がない場合は、apt_flag[COMPONENT_Y]の値が不定となるため、輝度の残差データ有無フラグcbf_lumaを参照して、輝度の適応プライマリ変換フラグapt_flag[COMPONENT_Y]の値を参照するか否かを制御することが望ましい。
また、pt_idx導出部152は、色差のプライマリ変換識別子 pt_idxの導出に関する処理を行う。例えば、pt_idx導出部152は、色差変換ブロックに関する適応プライマリ変換フラグapt_flag[compID] (compID=COMPONET_Cb or COMPONENT_Cr)、および該色差変換ブロックに対応する輝度変換ブロックに関するプライマリ変換識別子pt_idx[COMPONENT_Y]に基づいて、該色差の変換ブロックに関するプライマリ変換識別子pt_idx[compID]を、以下の式(11)のように導出する。
pt_idx[compID] = apt_flag[compID] ? pt_idx[COMPONENT_Y] : 所定値
・・・(11)
すなわち、pt_idx導出部152は、該色差変換ブロックに関する適応プライマリ変換フラグapt_flag[compID]が1(真)の場合、さらに、該色差変換ブロックに関するプライマリ変換識別子pt_idx[compID]を、該色差変換ブロックに対応する輝度変換ブロックに関するプライマリ変換識別子pt_idx[COMPONENT_Y]の値に設定する。それ以外の場合は、所定値を設定する。
以上のように、色差適応プライマリ変換情報導出部131は、色差変換ブロックに関する適応プライマリ変換情報を、色差変換ブロックに対応する輝度に関する適応プライマリ変換情報に基づいて導出することができる。したがって、色差変換ブロックに関する適応プライマリ変換情報を、符号化データより復号する必要がなく、復号の処理量を削減することができる。
<逆プライマリ変換部>
図10に戻り、逆プライマリ変換選択部132は、予測モード情報PInfo、色信号識別子compID、色信号識別子compIDに対応する色信号の適応プライマリ変換フラグapt_flag[compID]、色信号識別子compIDに対応する色信号のプライマリ変換識別子pt_idx[compID]を入力とする。逆プライマリ変換選択部132は、予測モード情報PInfo、色信号識別子compID、色信号識別子compIDに対応する色信号の適応プライマリ変換フラグapt_flag[compID]、色信号識別子compIDに対応する色信号のプライマリ変換識別子pt_idx[compID]を参照して、色信号識別子compIDで指定される色信号の逆プライマリ水平変換の変換タイプTrTypeIdxH、および逆プライマリ垂直変換の変換タイプTrTypeIdxVを導出し、それぞれ、逆プライマリ水平変換部134、逆プライマリ垂直変換部133に供給する。
逆プライマリ垂直変換部133は、各色信号の変換ブロック毎に、逆セカンダリ変換後の変換係数Coeff_IS、逆プライマリ垂直変換の変換タイプTrTypeIdxV、変換ブロックの縦幅を示すlog2TBHSize (縦幅の対数値)を入力とする。逆プライマリ垂直変換部133は、逆セカンダリ変換後の変換係数Coeff_ISに対して、変換タイプTrTypeIdxVと変換ブロックの縦幅で定まる逆プライマリ垂直変換IPverを実行し、その結果を逆プライマリ垂直変換後の変換係数Coeff_IPverとして逆プライマリ水平変換部134に供給する。なお、逆プライマリ垂直変換IPverは、プライマリ垂直変換Pverの逆変換である。
逆プライマリ水平変換部134は、各色信号の変換ブロック毎に、逆プライマリ垂直変換後の変換係数Coeff_IPver、逆プライマリ水平変換の変換タイプTrTypeIdxH、変換ブロックの横幅を示すlog2TBWSize(横幅の対数値)を入力とする。逆プライマリ水平変換部134は、逆プライマリ垂直変換後の変換係数Coeff_IPverに対して、変換タイプTrTypeIdxHと変換ブロックの横幅で定まる逆プライマリ水平変換IPhorを実行し、その結果を予測残差D'として逆変換部113の外部に出力する(演算部114に供給する)。なお、逆プライマリ水平変換IPhorは、プライマリ水平変換Phorの逆変換である。
<逆プライマリ変換選択部の処理>
次に、逆プライマリ変換選択部132における色信号識別子compIDで指定される色信号の逆プライマリ水平変換の変換タイプTrTypeIdxH、および逆プライマリ垂直変換のタイプTrTypeIdxVの導出の詳細について説明する。
具体的には、色信号識別子compIDで指定される色信号の適応プライマリ変換フラグapt_flag[compID]が1(真)の場合、逆プライマリ変換選択部132は、予測モード情報PInfoを参照して、図1の表に示される変換セット識別子TrSetSetIdx=0...3の4つの変換セットTrSetから、水平方向および垂直方向毎に、プライマリ変換の候補となる直交変換を含む変換セットTrSetを選択する。なお、直交変換のタイプと対応する識別子TrTypeIdxの値の対応付けは、図2に限定されず実施可能な範囲で変更してよい。
なお、適応プライマリ変換フラグapt_flag[compID]が0(偽)の場合、逆プライマリ変換選択部132は、適応プライマリ変換を実行しないことを示すため、逆プライマリ水平変換の変換タイプTrTypeIdxH、および逆プライマリ垂直変換の変換タイプTrTypeIdxVに、所定(例えば、DCT-II)の直交変換のタイプを示す変換タイプの識別子の値を設定する(TrIdxTypeH = TrIdxTypeV = 所定値)。
<変換セットの選択>
処理対象の変換ブロックが属するCUの予測タイプCuPredModeがイントラ予測を示す場合(CuPredMode==MODE_INTRA)、図3に示される表(LUT_IntraModeToTrSet)のように、イントラ予測モード(IntraPredMode)に基づいて行われる。例えば、以下の式(12)および式(13)のように、各方向の変換セット(TrSetH、およびTrSetV)に対して、対応する変換セットTrSetを指定する変換セット識別子TrSetIdxを設定するように実施される。また、処理対象の変換ブロックが属するCUの予測タイプCuPredModeがインター予測の場合、以下の式(14)のように、インター予測用の変換セットTrSetを指定する変換セット識別子TrSetIdx(=InterTrSetIdx)が設定される。なお、イントラ予測モードIntraPredModeは、輝度であれば、輝度イントラ予測モードIntraPredModeYの値が設定されており、色差であれば、色差イントラ予測モードIntraPredModeCの値が設定されているものとする。
if (CuPredMode == MODE_INTRA ){
TrSetH = LUT_IntraModeToTrSet [ IntraPredMode ] [ H(=0) ] ・・・(12)
TrSetV = LUT_IntraModeToTrSet [ IntraPredMode ] [ V(=1) ] ・・・(13)
} else { // CuPredMode==MODE_INTER
TrSetH = InterTrSetIdx
TrSetV = InterTrSetIdx ・・・(14)
}
ここで、TrSetHは、プライマリ水平変換PThorの変換セット(プライマリ水平変換セットと呼ぶ)を示し、TrSetVは、プライマリ垂直変換PTverの変換セット(プライマリ垂直変換セットとも呼ぶ)を示す。また、ルックアップテーブルLUT_IntraModeToTrSetは、図3の対応表である。ルックアップテーブルLUT_IntraModeToTrSet[][]の1番目の配列は、イントラ予測モードIntraPredModeを引数とし、2番目の配列は、{H=0, V=1}を引数とする。
例えば、イントラ予測モード番号18(IntraPredMode==18)の場合、プライマリ水平変換セットTrSetHとして、図1の表(LUT_TrSetToTrTypeIdx)に示される変換セット識別子TrSetIdx=2の変換セットが選択され、プライマリ垂直変換セットTrSetVとして、図1の表に示される変換セット識別子TrSetIdx=0の変換セットが選択される。
なお、図3において、イントラ予測モードIntraPredModeが、イントラブロックコピー(IBC; Intra Block Copy, IntraBC, 画面内動き補償とも呼ぶ)を示す場合(図3の表上では、IntraPredMode==67がIntraBCに該当)、インター予測専用の変換セット識別子が割り当てられるようにしてもよい。一般的に、インター予測とイントラブロックコピーでは、残差の傾向が類似するため、同一の変換セットを割り当てるのは妥当である。また、イントラブロックコピー専用の変換セット識別子が割り当てられるようにしてもよい。
<プライマリ(水平・垂直)変換指定フラグの導出>
さらに、逆プライマリ変換選択部132は、色信号識別子compIDで指定される色信号のプライマリ変換識別子pt_idx[compID](compID=COMPONENT_Y, COMPONENT_Cb, COMPONENT_Cr)から、例えば以下の式(15)に従って、プライマリ水平変換指定フラグpt_hor_flagとプライマリ垂直変換指定フラグpt_ver_flagとを導出する。
pt_hor_flag = pt_dx[compID] & 0x01
pt_ver_flag = pt_idx[compID] >> 1 (= (pt_idx[compID] & 0x10)>>1)
・・・(15)
すなわち、プライマリ変換識別子pt_idx[compID]は、2ビットの値をとり、上位1ビットがプライマリ垂直変換指定フラグpt_ver_flagに相当し、下位1ビットがプライマリ水平変換指定フラグpt_hor_flagに相当する。
<逆プライマリ(水平・垂直)変換の変換タイプの選択>
さらに、逆プライマリ変換選択部132は、各水平/垂直方向毎に選択された変換セットTrSetH、TrSetVから、逆プライマリ変換に用いる直交変換の変換タイプを、おのおの、プライマリ水平変換指定フラグpt_hor_flag、およびプライマリ垂直変換指定フラグpt_ver_flagによって選択する。
具体的には、逆プライマリ変換選択部132は、逆プライマリ水平変換に適用する直交変換の変換タイプTrTypeIdxHを、以下の式(16)のように、図1に示す変換セットと変換タイプの対応表(LUT_TrSetToTrTypeIdx)、プライマリ水平変換セットTrSetH、およびプライマリ水平変換指定フラグpt_hor_flagに基づいて決定する。
TrTypeIdxH = LUT_TrSetToTrTypeIdx [ TrSetH ] [ pt_hor_flag ]
・・・(16)
同様に、逆プライマリ変換選択部132は、逆プライマリ垂直変換に適用する直交変換の変換タイプTrTypeIdxVを、以下の式(17)のように、図1に示す変換セットと変換タイプの対応表(LUT_TrSetToTrTypeIdx)、プライマリ垂直変換セットTrSetVx、およびプライマリ垂直変換指定フラグpt_ver_flagに基づいて決定する。
TrTypeIdxV = LUT_TrSetToTrTypeIdx [ TrSetV ] [ pt_ver_flag ]
・・・(17)
例えば、プライマリ水平変換セットTrSetHの示す変換セット識別子TrSetIdxの値が2であれば、図1の変換セット定義表LUT_TrSetToTrTypeIdx上で変換セット識別子TrSetIdx==2である変換セットからプライマリ水平変換に適用する直交変換が選択される。すなわち、プライマリ水平変換指定フラグpt_hor_flagが0の場合、プライマリ水平変換PThorの直交変換のタイプを指定する水平変換タイプ識別子TrTypeIdxHに、図1の表のように、DST-VIIを示す変換タイプ識別子TrTypeIdxの値「4」が設定され、プライマリ水平変換指定フラグpt_hor_flagが1の場合、水平変換タイプ識別子TrTypeIdxHに、DCT-Vを示す変換タイプ識別子TrTypeIdxの値「1」が設定される。
なお、図1に示す表の変換セット識別子TrSetIdx、プライマリ水平変換指定フラグ、およびプライマリ垂直変換指定フラグの値とで定まる変換タイプは、実施可能な範囲で自由に変更することができるようにしてもよい。
その後、逆プライマリ変換選択部132は、色信号識別子compIDで指定される色信号の逆プライマリ水平変換IPThorの変換タイプTrTypeIdxH、および逆プライマリ垂直変換IPTverの変換タイプTrTypeIdxVを、それぞれ、逆プライマリ垂直変換部133と逆プライマリ水平変換部134に供給する。
以上のように、逆プライマリ変換部123は、色差の残差信号が輝度の残差信号と傾向が類似する場合において、輝度において選択された逆適応プライマリ変換を、色差の変換ブロックに適用することが可能となる。したがって、従来技術と比較して、色差の残差信号に対して、符号化効率の向上した逆プライマリ変換処理を行うことができる。
また、輝度/色差毎に適応プライマリ変換フラグapt_flag、およびプライマリ変換識別子pt_idxを明示的に復号する場合と比較して、色差に関する符号化効率の低下を抑えつつ、エンコーダの処理量を削減することができる。
<画像復号処理の流れ>
次に、以上のような画像復号装置100により実行される各処理の流れについて説明する。最初に、図12のフローチャートを参照して、画像復号処理の流れの例を説明する。
画像復号処理が開始されると、ステップS101において、復号部111は、画像復号装置100に供給されるビットストリーム(符号化データ)を復号し、ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、残差情報Rinfo、量子化変換係数レベルlevel等の情報を得る。
ステップS102において、逆量子化部112は、ステップS101の処理により得られた量子化変換係数レベルlevelを逆量子化して変換係数Coeff_IQを導出する。この逆量子化は、後述する画像符号化処理において行われる量子化の逆処理であり、その画像符号化処理において行われる逆量子化と同様の処理である。
ステップS103において、逆変換部113は、ステップS102の処理により得られた変換係数Coeff_IQを逆変換し、予測残差D'を導出する。この逆変換は、後述する画像符号化処理において行われる変換処理の逆処理であり、その画像符号化処理において行われる逆変換と同様の処理である。
ステップS104において、予測部116は、予測モード情報PInfoに基づいて、符号化の際の予測と同一の予測モードで予測を行い、予測画像生成する。
ステップS105において、演算部114は、ステップS103の処理により得られた予測残差D'に、ステップS104の処理により得られた予測画像を加算し、復号画像を得る。
ステップS106において、演算部114は、ステップS105の処理により得られた復号画像を画像復号装置100の外部に出力する。
ステップS107において、フレームメモリ115は、ステップS105の処理により得られた復号画像を記憶する。
ステップS107の処理が終了すると、画像復号処理が終了される。
<プライマリ変換情報復号処理>
上述したように図12のステップS101においては、符号化データ#1に含まれる様々な情報が復号される。その際、復号部111は、適応プライマリ変換フラグapt_flagやプライマリ変換識別子pt_idx等の情報の復号も適宜行う。例えば、復号部111は、輝度の適応プライマリ変換フラグapt_flag[COMPONENT_Y]や輝度のプライマリ変換識別子pt_idx[COMPONENT_Y]を復号する。ただし、上述したように、この符号化データ#1には、色差の適応プライマリ変換フラグapt_flag [compID] (compID=COMPONET_Cb or COMPONENT_Cr)や色差のプライマリ変換識別子pt_idx [compID] (compID=COMPONET_Cb or COMPONENT_Cr)は、含まれていない。したがって、復号部111は、それらの情報の復号は省略する。
このような復号を行うために、復号部111は、ステップS101において、プライマリ変換情報復号処理を実行する。図13のフローチャートを参照して、そのプライマリ変換情報復号処理の流れの例を説明する。
プライマリ変換情報復号処理が開始されると、復号部111は、ステップS111において、処理対象コンポーネントが輝度である(compID == COMPONENT_Y)か否かを判定する。輝度であると判定された場合、処理はステップS112に進む。
ステップS112において、復号部111は、符号化データ#1に含まれる輝度の適応プライマリ変換フラグapt_flag[COMPONENT_Y]を復号して得る。ステップS113において、復号部111は、符号化データ#1に含まれる輝度のプライマリ変換識別子pt_idx[COMPONENT_Y]を復号して得る。ステップS113の処理が終了すると、プライマリ変換情報復号処理が終了する。
また、ステップS111において、処理対象コンポーネントが色差である(compID != COMPONENT_Y)と判定された場合、ステップS112およびステップS113の処理が省略され、プライマリ変換情報復号処理が終了する。つまり、色差の場合、適応プライマリ変換フラグapt_flagやプライマリ変換識別子pt_idxの復号が省略される。したがって、復号の負荷の増大を抑制することができる。
<逆変換の処理の流れ>
次に、図12のステップS103において実行される逆変換処理の流れの例を、図14のフローチャートを参照して説明する。逆変換処理が開始されると、スイッチ121は、ステップS121において、変換スキップフラグts_flagが2D_TS(2次元変換スキップのモード)であるか、または、変換量子化バイパスフラグtransquant_bypass_flagが1(真)であるかを判定する。変換スキップ識別子ts_idxが2D_TSである、または、変換量子化バイパスフラグが1(真)であると判定された場合、スイッチ121により変換係数Coeff_IQが予測残差D'として外部へ出力(演算部114に供給)され、逆変換処理が終了し、処理は図12に戻る。
また、ステップS121において、変換スキップ識別子ts_idxが2D_TSでない(2次元変換スキップ以外のモード)、かつ、変換量子化バイパスフラグが0(偽)であると判定された場合、スイッチ121により変換係数Coeff_IQが逆セカンダリ変換部122に供給され、処理はステップS122に進む。
ステップS122において、逆セカンダリ変換部122は、入力された変換係数Coeff_IQに対して、セカンダリ変換識別子st_idxに基づいて、逆セカンダリ変換を行い、逆セカンダリ変換後の変換係数Coeff_ISを導出し、出力する。
ステップS123において、逆プライマリ変換選択部132は、色信号識別子compIDが輝度であるか、色差であるか判別する。色信号識別子compIDが色差を示す場合(compID!=COMPONENT_Y)、処理はステップS124に進む。ステップS124において、色差適応プライマリ変換情報導出部131は、色差変換ブロックに関する適応プライマリ変換フラグapt_flag[compID] (compID=COMPONET_Cb or COMPONENT_Cr)、および該色差変換ブロックに対応する輝度変換ブロックに関するプライマリ変換識別子pt_idx[COMPONENT_Y]に基づいて、該色差の変換ブロックに関するプライマリ変換識別子pt_idx[compID]を導出する。ステップS124の処理が終了すると処理はステップS125に進む。
また、ステップS123において、色信号識別子compIDが輝度を示す場合(compID==COMPONENT_Y)処理はステップS125に進む。
ステップS125において、逆プライマリ変換選択部132は、予測モード情報PInfo、色信号識別子compID、色信号識別子compIDに対応する色信号の適応プライマリ変換フラグapt_flag[compID]、色信号識別子compIDに対応する色信号のプライマリ変換識別子pt_idx[compID]を参照して、色信号識別子compIDで指定される色信号の逆プライマリ水平変換の変換タイプTrTypeIdxH、および逆プライマリ垂直変換の変換タイプTrTypeIdxVを導出する。
ステップS126において、逆プライマリ垂直変換部133は、色信号識別子compIDで指定される変換ブロック毎に、該変換ブロックの逆セカンダリ変換後の変換係数Coeff_ISに対して、逆プライマリ垂直変換の変換タイプTrTypeIdxVと該変換ブロックの縦幅で定まる逆プライマリ垂直変換IPverを実行し、その結果を逆プライマリ垂直変換後の変換係数Coeff_IPverとして出力する。
ステップS127において、逆プライマリ水平変換部134は、色信号識別子compIDで指定される変換ブロック毎に、該変換ブロックの逆プライマリ垂直変換後の変換係数Coeff_IPverに対して、逆プライマリ水平変換の変換タイプTrTypeIdxHと該変換ブロックの縦幅で定まる逆プライマリ水平変換IPhorを実行し、その結果を予測残差D'として出力する。ステップS127の処理が終了すると、逆変換処理が終了し、処理は図12に戻る。
<色差適応プライマリ変換情報導出処理の流れ>
次に、図14のステップS124において実行される色差適応プライマリ変換情報導出処理の流れの例を、図15のフローチャートを参照して説明する。色差適応プライマリ変換情報導出処理が開始されると、色差適応プライマリ変換情報導出部131のapt_flag導出部151は、ステップS131において、色差の適応プライマリ変換フラグapt_flag[compID]の値に、輝度の適応プライマリ変換フラグapt_flag[COMPONENT_Y]の値をセットする。
ステップS132において、色差適応プライマリ変換情報導出部131のpt_idx導出部152は、その色差の適応プライマリ変換フラグapt_flag[compID]が真であるか否かを判定する。真であると判定されると処理はステップS133に進む。ステップS133において、pt_idx導出部152は、色差のプライマリ変換識別子pt_idx[compID]に、輝度のプライマリ変換識別子pt_idx[COMPONENT_Y]の値をセットする。ステップS133の処理が終了すると、色差適応プライマリ変換情報導出処理が終了し、処理は図14に戻る。
また、図15のステップS132において、色差の適応プライマリ変換フラグapt_flag[compID]が偽であると判定された場合、処理はステップS134に進む。ステップS134において、pt_idx導出部152は、色差のプライマリ変換識別子pt_idx[compID]に、所定の値をセットする。ステップS134の処理が終了すると、色差適応プライマリ変換情報導出処理が終了し、処理は図14に戻る。
<逆プライマリ変換選択処理の流れ>
次に、図14のステップS125において実行される逆プライマリ変換選択処理の流れの例を、図16のフローチャートを参照して説明する。
逆プライマリ変換選択処理が開始されると、逆プライマリ変換選択部132は、ステップS141において、色信号識別子compIDに対応する色信号の適応プライマリ変換フラグapt_flag[compID]が1(真)であるか否かを判定する。該適応プライマリ変換フラグapt_flag[compID]が1(真)であると判定された場合、処理はステップS142に進む。
ステップS142において、逆プライマリ変換選択部132は、予測モード情報PInfoに基づいて、逆プライマリ垂直変換の変換セットTrSetV(プライマリ水平変換セット)、および逆プライマリ水平変換の変換セットTrSetH(プライマリ垂直変換セット)を選択する。
ステップS143において、逆プライマリ変換選択部132は、色信号識別子compIDに対応する色信号のプライマリ変換識別子pt_idx[compID]から、プライマリ水平変換指定フラグpt_hor_flag、およびプライマリ垂直変換指定フラグpt_ver_flagを導出する。
ステップS144において、逆プライマリ変換選択部132は、プライマリ水平変換セットTrSetHおよびプライマリ水平変換指定フラグpt_hor_flagを参照して、逆プライマリ水平変換IPThorとして適用する直交変換の変換タイプTrTypeIdxHを選択する。
ステップS145において、逆プライマリ変換選択部132は、プライマリ垂直変換セットTrSetV、およびプライマリ垂直変換指定フラグpt_ver_flagを参照して、逆プライマリ垂直変換IPTverとして適用する直交変換の変換タイプTrTypeIdxVを選択する。ステップS145の処理が終了すると、逆プライマリ変換選択処理が終了し、処理は図14に戻る。
また、ステップS141において、適応プライマリ変換フラグapt_flag[compID]が0(偽)であると判定された場合、処理はステップS146に進む。ステップS146において、逆プライマリ変換選択部132は、逆プライマリ水平変換IPThorの変換タイプTrTypeIdxHとして、所定の直交変換を選択する(TrTypeIdxH = 所定値)。
ステップS147において、逆プライマリ変換選択部132は、逆プライマリ垂直変換IPTverの変換タイプTrTypeIdxVとして、所定の直交変換を選択する(TrTypeIdxV = 所定値)。ステップS147の処理が終了すると、逆プライマリ変換選択処理が終了し、処理は図14に戻る。
つまり、逆プライマリ変換選択部132は、色差の適応プライマリ変換フラグapt_flag[compID]の値に応じた方法で、逆プライマリ水平変換IPThorの変換タイプTrTypeIdxHと、逆プライマリ垂直変換IPTverの変換タイプTrTypeIdxVとを導出する。
以上のように、画像復号装置100が備える逆変換部113は、色差の残差信号が輝度の残差信号と傾向が類似する場合において、輝度において選択された逆適応プライマリ変換を、色差の変換ブロックに適用することが可能となる。したがって、従来技術と比較して、色差の残差信号に対して、符号化効率の向上した逆プライマリ変換処理を行うことができる。また、輝度/色差毎に適応プライマリ変換フラグapt_flag、およびプライマリ変換識別子pt_idxを明示的に復号する場合と比較して、色差に関する符号化効率の低下を抑えつつ、符号化や復号の処理量を削減することができる。
<変形例#1>
なお、色差の適応プライマリ変換フラグの導出を予測タイプがインターCUの場合に限定するようにしてもよい。例えば、以下の式(18)のように、処理対象の色差変換ブロックに関する適応プライマリ変換フラグapt_flag[compID] (compID=COMPONET_Cb or COMPONENT_Cr)を、該色差の変換ブロックに対応する輝度変換ブロックに関する適応プライマリ変換フラグapt_flag[COMPONENT_Y]、および該色差変換ブロックが属するCU(符号化単位)の予測タイプCuPredModeに基づいて導出するようにしてもよい。
if ( CuPredMode == MODE_INTER ) {
apt_flag[compID] = apt_flag[COMPONENT_Y]
} else {
apt_flag[compID] = 0
}
・・・(18)
例えば、該色差変換ブロックの属するCUの予測タイプCuPredModeがインター予測である場合、(CuPredMode==MODE_INTER)、色差変換ブロックに関する適応プライマリ変換フラグapt_flag[compID]が、該色差の変換ブロックに対応する輝度変換ブロックに関する適応プライマリ変換フラグapt_flag[COMPONENT_Y]に基づいて設定される。これに対して、該色差変換ブロックの属するCUの予測タイプCuPredModeがインター予測でない場合(イントラ予測である)、色差変換ブロックに関する適応プライマリ変換フラグapt_flag[compID]の値が0(偽)に設定される。
このような場合の色差適応プライマリ変換情報導出処理の流れの例を、図17のフローチャートを参照して説明する。このフローチャートは、図15のフローチャートに対応する。この場合、色差適応プライマリ変換情報導出処理が開始されると、apt_flag導出部151は、ステップS151において、処理対象の変換ブロックが属するCUの予測タイプCUPredModeがインター予測(MODE_INTER)であるか否かを判定する。インター予測であると判定された場合、処理はステップS152に進む。
ステップS152において、apt_flag導出部151は、図15のステップS131の場合と同様に、色差の適応プライマリ変換フラグapt_flag[compID]の値に、輝度の適応プライマリ変換フラグapt_flag[COMPONENT_Y]の値をセットする。ステップS152の処理が終了すると処理はステップS154に進む。
また、ステップS151において、処理対象の変換ブロックが属するCUの予測タイプCUPredModeがイントラ予測であると判定された場合、処理はステップS153に進む。ステップS153において、apt_flag導出部151は、色差の適応プライマリ変換フラグapt_flag[compID]の値を0(偽)にする。ステップS153の処理が終了すると処理はステップS154に進む。
ステップS154乃至ステップS156の各処理は、図15のステップS132乃至ステップS134の各処理と同様に実行される。そして、ステップS155またはステップS156の処理が終了すると、色差適応プライマリ変換情報導出処理が終了し、処理は図14に戻る。
予測タイプがイントラ予測の場合、輝度と色差では、イントラ予測モードが異なる場合がある。このとき、輝度と色差の残差信号の傾向は異なるため、輝度の適応プライマリ変換情報を色差へ適用すると符号化効率が低下する可能性がある。したがって、図17のように色差適応プライマリ変換情報導出処理を実行し、予測タイプがインター予測の場合のみ、輝度の適応プライマリ変換情報を色差へ適用するようにすることで、図15の場合と比べて符号化効率の低減をより抑制することができる。
<変形例#2>
また、色差の適応プライマリ変換フラグの導出を、インターCU、または、イントラCUかつ輝度イントラ予測モードがイントラブロックコピー(画面内動き補償)のときに限定するようにしてもよい。例えば、以下の式(19)のように、処理対象の色差変換ブロックに関する適応プライマリ変換フラグapt_flag[compID] (compID=COMPONET_Cb or COMPONENT_Cr)を、該色差の変換ブロックに対応する輝度変換ブロックに関する適応プライマリ変換フラグapt_flag[COMPONENT_Y]、および該色差変換ブロックが属するCU(符号化単位)の予測タイプCuPredMode、および予測モード情報PInfo基づいて設定するようにしてもよい。
if ( CuPredMode == MODE_INTER ) {
apt_flag[compID] = apt_flag[COMPONENT_Y]
} else if (IntraPredModeC == "IntraBC") { // CuPredMODE == MODE_INTRA
apt_flag[compID] = apt_flag[COMPONENT_Y]
} else {
apt_flag[compID] = 0
}
・・・(19)
つまり、該色差変換ブロックの属するCUの予測タイプCuPredModeがインター予測である場合、または、CUの予測タイプがイントラ予測であり、かつ、色差のイントラ予測モードIntraPredModeCがイントラブロックコピー(IntraBC)である場合、色差変換ブロックに関する適応プライマリ変換フラグapt_flag[compID]が、該色差の変換ブロックに対応する輝度変換ブロックに関する適応プライマリ変換フラグapt_flag[COMPONENT_Y]に基づいて設定される。これに対して、それ以外の場合(CUの予測タイプCuPredModeがイントラ予測であり、かつ、色差のイントラ予測モードIntraPredModeCがイントラブロックコピーでない場合)、色差変換ブロックに関する適応プライマリ変換フラグapt_flag[compID]の値が0(偽)に設定される。なお、同一CUに輝度と色差の情報が含まれる場合は、上述の式(19)において、色差のイントラ予測モードIntraPredModeCの代わりに、輝度のイントラ予測モードIntraPredModeYを用いて条件判定をしてもよい。
このような場合の色差適応プライマリ変換情報導出処理の流れの例を、図18のフローチャートを参照して説明する。このフローチャートは、図15のフローチャートに対応する。この場合、色差適応プライマリ変換情報導出処理が開始されると、apt_flag導出部151は、ステップS171において、処理対象の変換ブロックが属するCUの予測タイプCUPredModeがインター予測(MODE_INTER)であるか否かを判定する。イントラ予測であると判定された場合、処理はステップS172に進む。
ステップS172において、apt_flag導出部151は、色差のイントラ予測モードIntraPredModeCがイントラブロックコピー(IntraBC)であるか否かを判定する。イントラブロックコピー(IntraBC)であると判定された場合、処理はステップS173に進む。また、ステップS171において、処理対象の変換ブロックが属するCUの予測タイプCUPredModeがインター予測(MODE_INTER)であると判定された場合、処理はステップS173に進む。
ステップS173において、apt_flag導出部151は、図15のステップS131の場合と同様に、色差の適応プライマリ変換フラグapt_flag[compID]の値に、輝度の適応プライマリ変換フラグapt_flag[COMPONENT_Y]の値をセットする。ステップS173の処理が終了すると処理はステップS175に進む。
また、ステップS172において、色差のイントラ予測モードIntraPredModeCがイントラブロックコピー(IntraBC)でないと判定された場合、処理はステップS174に進む。ステップS174において、apt_flag導出部151は、色差の適応プライマリ変換フラグapt_flag[compID]の値を0(偽)にする。ステップS174の処理が終了すると処理はステップS175に進む。
ステップS175乃至ステップS177の各処理は、図15のステップS132乃至ステップS134の各処理と同様に実行される。そして、ステップS176またはステップS177の処理が終了すると、色差適応プライマリ変換情報導出処理が終了し、処理は図14に戻る。
予測タイプがイントラ予測であって、イントラ予測モードIntraPredModeがイントラブロックコピーである場合、インター予測と同様に、輝度の残差と色差の残差の傾向が類似する。したがって、<変形例#1>と比較して、予測タイプがイントラ予測であって、イントラ予測モードIntraPredModeがIntraBCの場合に、輝度の適応プライマリ変換を、色差に対して適用することができるため、さらに符号化効率を改善することできる。
<変形例#3>
また、色差の適応プライマリ変換フラグの導出を、インターCU、または、イントラCUかつ輝度イントラ予測モードが色差イントラ予測モードと等しいときに限定するようにしてもよい。例えば、以下の式(20)のように、処理対象の色差変換ブロックに関する適応プライマリ変換フラグapt_flag[compID] (compID=COMPONET_Cb or COMPONENT_Cr)を、該色差の変換ブロックに対応する輝度変換ブロックに関する適応プライマリ変換フラグapt_flag[COMPONENT_Y]、該色差変換ブロックが属するCU(符号化単位)の予測タイプCuPredMode、および該CUの輝度イントラ予測モードIntraPredModeYが該CUの色差イントラモードIntraPredModeCに基づいて設定するようにしてもよい。
if ( CuPredMode == MODE_INTER ) {
apt_flag[compID] = apt_flag[COMPONENT_Y]
} else if (IntraPredModeY == IntraPredModeC) { // CuPredMode==MODE_INTRA
apt_flag[compID] = apt_flag[COMPONENT_Y]
} else {
apt_flag[compID] = 0
}
・・・(20)
つまり、該色差変換ブロックの属するCUの予測タイプCuPredModeがインター予測、あるいは、CUの予測タイプがイントラ予測、かつ、色差のイントラ予測モードIntraPredModeCが輝度のイントラ予測モードIntraPredModeYと等しい場合、色差変換ブロックに関する適応プライマリ変換フラグapt_flag[compID]が、該色差の変換ブロックに対応する輝度変換ブロックに関する適応プライマリ変換フラグapt_flag[COMPONENT_Y]に基づいて設定される。これに対して、それ以外の場合(CUの予測タイプCuPredModeがイントラ予測、かつ、色差のイントラ予測モードが輝度のイントラ予測モードと異なる場合)、色差変換ブロックに関する適応プライマリ変換フラグapt_flag[compID]の値が0(偽)に設定される。
このような場合の色差適応プライマリ変換情報導出処理の流れの例を、図19のフローチャートを参照して説明する。このフローチャートは、図15のフローチャートに対応する。この場合、色差適応プライマリ変換情報導出処理が開始されると、apt_flag導出部151は、ステップS181において、処理対象の変換ブロックが属するCUの予測タイプCUPredModeがインター予測(MODE_INTER)であるか否かを判定する。イントラ予測であると判定された場合、処理はステップS182に進む。
ステップS182において、apt_flag導出部151は、色差のイントラ予測モードIntraPredModeCが輝度のイントラ予測モードIntraPredModeYと等しいか否かを判定する。等しいと判定された場合、処理はステップS183に進む。また、ステップS182において、色差のイントラ予測モードIntraPredModeCが輝度のイントラ予測モードIntraPredModeYと等しくないと判定された場合、処理はステップS184に進む。
ステップS183乃至ステップS187の各処理は、図18のステップS173乃至ステップS177の各処理と同様に実行される。そして、ステップS186またはステップS187の処理が終了すると、色差適応プライマリ変換情報導出処理が終了し、処理は図14に戻る。
CUの予測タイプがイントラ予測の場合、輝度と色差では、イントラ予測モードが等しい場合には、輝度と色差の残差信号の傾向が類似する。したがって、輝度のイントラ予測モードと色差のイントラ予測モードが同値である場合のみ、輝度の適応プライマリ変換情報を、色差へ適用することで、<変形例#1>の場合と比較して、予測タイプがイントラ予測であって、輝度のイントラ予測モードと色差のイントラ予測モードが同値である場合に、輝度の適応プライマリ変換を、色差に対して適用することができるため、さらに符号化効率を改善することができる。
<変形例#4>
また、色差の適応プライマリ変換に関する情報を、輝度の適応プライマリ変換に基づいて設定するか否かを示すフラグを追加し、そのフラグにより色差の適応プライマリ変換に関する情報の設定を制御するようにしてもよい。例えば、以下の式(21)のように、処理対象の色差変換ブロックに関する適応プライマリ変換フラグapt_flag[compID] (compID=COMPONET_Cb or COMPONENT_Cr)を、該色差変換ブロックに対応する輝度変換ブロックの適応プライマリ変換情報から設定(推定)するか否かを示す色差適応プライマリ変換情報推定フラグchroma_apt_infer_flagと、該色差の変換ブロックに対応する輝度変換ブロックに関する適応プライマリ変換フラグapt_flag[COMPONENT_Y]とに基づいて設定するようにしてもよい。
if ( chroma_apt_info_infer_flag [compID] ) {
apt_flag[compID] = apt_flag[COMPONENT_Y] : 0
} else {
apt_flag[compID] = 0
}
・・・(21)
つまり、色差適応プライマリ変換情報推定フラグchroma_apt_info_infer_flag[compID]が1(真)の場合、色差変換ブロックに関する適応プライマリ変換フラグapt_flag[compID]が、該色差の変換ブロックに対応する輝度変換ブロックに関する適応プライマリ変換フラグapt_flag[COMPONENT_Y]に基づいて設定される。これに対して、それ以外の場合(色差適応プライマリ変換情報推定フラグchroma_apt_info_infer_flag[compID]が0(偽)の場合)、色差変換ブロックに関する適応プライマリ変換フラグapt_flag[compID]の値が0(偽)に設定される。
この場合のTUのシンタックスの例を図20のAに示す。各パラメータのセマンティクスは、図20のBのようになる。また、図20のAのシンタックスに含まれるresidual codingのシンタックスの例を図21に示す。色差適応プライマリ変換情報推定フラグchroma_apt_info_infer_flagは、図21に示すシンタックステーブルの定義に沿って、復号部111により復号される。
すなわち、色信号識別子compIDが色差を示す場合であって、かつ、輝度の適応プライマリ変換フラグapt_flag[COMPONENT_Y]が1(真)であって、かつ、色信号識別子compIDに対応する色信号の変換スキップフラグts_flag[compID]が0(偽)であって、かつ、変換量子化バイパスフラグフラグが0(偽)である場合、該色差適応プライマリ変換情報推定フラグchroma_apt_info_infer_flagが復号される。それ以外の条件の場合は、該色差適応プライマリ変換情報推定フラグchroma_apt_info_infer_flagの値は0と推定される。
復号部111は、図12のステップS101において、色差適応プライマリ変換情報推定フラグ復号処理を実行することにより、このような復号を行う。図22のフローチャートを参照してこの色差適応プライマリ変換情報推定フラグ復号処理の流れの例を説明する。
色差適応プライマリ変換情報推定フラグ復号処理が開始されると、復号部111は、ステップS191において、色信号識別子compIDが輝度である否かを判定する。色信号識別子compIDが色差であると判定された場合(compID != COMPONENT_Y)、処理はステップS192に進む。ステップS192において、復号部111は、輝度の適応プライマリ変換フラグapt_flag[COMPONENT_Y]が、1(真)であるか否かを判定する。輝度の適応プライマリ変換フラグapt_flag[COMPONENT_Y]が1(真)であると判定された場合、処理はステップS193に進む。
ステップS193において、復号部111は、変換量子化バイパスフラグtransquant_bypass_flagが、1(真)であるか否かを判定する。変換量子化バイパスフラグが0(偽)であると判定された場合(! transquant_bypass_flag)、処理はステップS194に進む。ステップS194において、復号部111は、色信号識別子compIDに対応する色信号の変換スキップフラグts_flag[compID]が1(真)であるか否かを判定する。変換スキップフラグts_flag[compID]が0(偽)であると判定された場合(! ts_flag[compID])、処理はステップS195に進む。
ステップS195において、復号部111は、符号化データ#1のビット列から、色信号識別子compIDに対応する色差適応プライマリ変換情報推定フラグchroma_apt_info_infer_flag[compID]を復号し、変換情報Tinfoの一部として出力する。ステップS195の処理が終了すると、色差適応プライマリ変換情報推定フラグ復号処理が終了し、処理は図12に戻る。
また、ステップS191において、色信号識別子compIDが輝度であると判定された場合(compID==COMPONENT_Y)、処理はステップS196に進む。また、ステップS192において(! apt_flag[COMPONENT_Y])、輝度の適応プライマリ変換フラグapt_flag[COMPONENT_Y]が0(偽)であると判定された場合、処理はステップS196に進む。また、ステップS193において、変換量子化バイパスフラグが1(真)であると判定された場合(transquant_bypass_flag)、処理はステップS196に進む。また、ステップS194において、変換スキップフラグts_flag[compID]が1(真)であると判定された場合(ts_flag[compID])、処理はステップS196に進む。
ステップS196において、復号部111は、色信号識別子compIDに対応する色差適応プライマリ変換情報推定フラグchroma_apt_info_infer_flag[compID]の復号を省略し、該フラグの値を0(偽)にセットする(chroma_apt_info_infer_flag[compID] = 0)。ステップS196の処理が終了すると、色差適応プライマリ変換情報推定フラグ復号処理が終了し、処理は図12に戻る。
色差適応プライマリ変換情報導出部131は、このように復号またはセットされた色差適応プライマリ変換情報推定フラグchroma_apt_info_infer_flag[compID]を用いて、色差適応プライマリ変換情報導出処理を行う。このような場合の色差適応プライマリ変換情報導出処理の流れの例を、図23のフローチャートを参照して説明する。このフローチャートは、図15のフローチャートに対応する。この場合、色差適応プライマリ変換情報導出処理が開始されると、apt_flag導出部151は、ステップS201において、色差適応プライマリ変換情報推定フラグchroma_apt_info_infer_flag[compID]の値が真であるか否かを判定する。真であると判定された場合、処理はステップS202に進む。また、ステップS201において、色差適応プライマリ変換情報推定フラグchroma_apt_info_infer_flag[compID]の値が偽であると判定された場合、処理はステップS203に進む。
ステップS202乃至ステップS206の各処理は、図19のステップS183乃至ステップS187の各処理と同様に実行される。そして、ステップS205またはステップS206の処理が終了すると、色差適応プライマリ変換情報導出処理が終了し、処理は図14に戻る。
輝度の残差と色差の残差の傾向が異なる信号に対して、輝度の適応プライマリ変換情報を色差に対して適用するか否かを、色差適応プライマリ変換情報推定フラグに基づいて、明示的に制御することが可能となる。したがって、図15の場合と比較して、より効率的に色差に対して、適応プライマリ変換を適用することが可能となり、符号化効率を改善することができる。
<変形例#5>
また、色差の適応プライマリ変換フラグの導出を、色差の変換ブロックの短辺のサイズが所定の閾値以上である場合に限定するようにしてもよい。例えば、以下の式(22)のように、処理対象の色差変換ブロックに関する適応プライマリ変換フラグapt_flag[compID] (compID=COMPONET_Cb or COMPONENT_Cr)を、該色差の変換ブロックに対応する輝度変換ブロックに関する適応プライマリ変換フラグapt_flag[COMPONENT_Y]、および該色差変換ブロックの短辺のサイズに基づいて設定するようにしてもよい。
if ( min(log2TBWSize, log2TBHSize) >= TH ) {
apt_flag[compID] = apt_flag[COMPONENT_Y]
} else {
apt_flag[compID] = 0
}
・・・(22)
つまり、色差変換ブロックの短辺のサイズが閾値以上の場合(min(log2TBWSize, log2TBHSize)>=TH)、色差変換ブロックに関する適応プライマリ変換フラグapt_flag[compID]が、該色差の変換ブロックに対応する輝度変換ブロックに関する適応プライマリ変換フラグapt_flag[COMPONENT_Y]に基づいて設定される。これに対して、それ以外の場合(色差変換ブロックの短辺のサイズが閾値未満の場合)、色差変換ブロックに関する適応プライマリ変換フラグapt_flag[compID]の値が0(偽)に設定される。
このような場合の色差適応プライマリ変換情報導出処理の流れの例を、図24のフローチャートを参照して説明する。このフローチャートは、図15のフローチャートに対応する。この場合、色差適応プライマリ変換情報導出処理が開始されると、apt_flag導出部151は、ステップS211において、処理対象の変換ブロックの短辺のサイズ(min(log2TBWSize, log2TBHSize))が所定の閾値TH以上であるか否かを判定する。処理対象の変換ブロックの短辺のサイズが所定の閾値以上である(min(log2TBWSize, log2TBHSize) >= TH)と判定された場合、処理はステップS212に進む。また、ステップS211において、処理対象の変換ブロックの短辺のサイズが所定の閾値未満である(min(log2TBWSize, log2TBHSize) < TH)と判定された場合、処理はステップS213に進む。
ステップS212乃至ステップS216の各処理は、図23のステップS202乃至ステップS206の各処理と同様に実行される。そして、ステップS215またはステップS216の処理が終了すると、色差適応プライマリ変換情報導出処理が終了し、処理は図14に戻る。
色差の変換ブロックの短辺のサイズが所定値未満(例えば4)の場合、短辺のサイズに等しいサイズのDST-7/DST-1/DCT-5/DCT-8などの適応プライマリ変換を、短辺側へ適用しても符号化効率の改善幅は小さい。そのため、色差の変換ブロックの短辺のサイズが所定値未満の場合には、適応プライマリ変換を適用しないようすることで、符号化効率の低減を抑えたまま、所定値未満のサイズの適応プライマリ変換に利用される変換に関する回路規模を削減することができる。
<変形例#6>
また、色差の変換ブロックの縦幅、横幅のサイズにより逆プライマリ水平変換IPhorおよび逆プライマリ垂直変換IPverの変換タイプを選択することができるようにしてもよい。例えば、以上においては、逆プライマリ変換選択部132が、図1に示す変換セットと変換タイプの対応表(LUT_TrSetToTrTypeIdx)、プライマリ{水平, 垂直}変換セットTrSet{H,V}、およびプライマリ{水平,垂直}変換指定フラグpt_{hor,ver}_flagに基づいて、各方向の逆変換に適用する直交変換のタイプを決定するように説明したが、これに限定されない。例えば、色差の変換ブロックの場合は、色差変換ブロックのサイズをさらに参照して、各方向の変換タイプを決定するようにしてもよい。
例えば、図16のステップS144において、以下の式(23)のように、色差変換ブロックの横幅(ここでは、横幅の対数値log2TBWSize)が閾値TH以下の場合、(逆)プライマリ水平変換の変換タイプTrTypeIdxHを所定の変換タイプ(DCT-2)に設定し、それ以外の場合、水平変換セットTrSetH、プライマリ水平変換指定フラグpt_hor_flagに基づいて、(逆)プライマリ水平変換の変換タイプTrTypeIdxHを設定するようにしてもよい。なお、式(23)において、閾値THの具体例は、例えば1や2と設定する。なお、式(23)において、変換ブロックの横幅の対数値log2TBWSizeの代わりに、横幅TBWに置き換えてもよい。その場合、閾値TH'は、1<<THと設定される。
if (compID==COMPONENT_Y ){
TrTypeIdxH = LUT_TrSetToTrTypeIdx[ TrSetH ][ pt_hor_flag ]
} else if (log2TBWSize<=TH){
TrTypeIdxH = 所定値 (DCT-IIを示す変換タイプの値を設定)
} else {
TrTypeIdxH = LUT_TrSetToTrTypeIdx[ TrSetH ][ pt_hor_flag ]
}
・・・(23)
このような、図16のステップS144において実行されるプライマリ水平変換タイプ導出処理の流れの例を、図25のフローチャートを参照して説明する。プライマリ水平変換タイプ導出処理が開始されると、逆プライマリ変換選択部132は、ステップS221において、処理対象が輝度の変換ブロックであるか否かを判定する。色差の変換ブロックであると判定された場合、処理はステップS222に進む。ステップS222において、逆プライマリ変換選択部132は、色差変換ブロックの横幅(横幅の対数値log2TBWSize)が閾値TH以下であるか否かを判定する。色差変換ブロックの横幅が閾値より大きいと判定された場合(log2TBWSize > TH)、処理はステップS223に進む。また、ステップS221において、処理対象が輝度の変換ブロックであると判定された場合、処理はステップS223に進む。
ステップS223において、逆プライマリ変換選択部132は、(逆)プライマリ水平変換の変換タイプTrTypeIdxHを、図1に示す変換セットと変換タイプの対応表(LUT_TrSetToTrTypeIdx)、プライマリ水平変換セットTrSetH、およびプライマリ水平変換指定フラグpt_hor_flagに基づいて設定する。ステップS223の処理が終了すると、プライマリ水平変換タイプ導出処理が終了し、処理は図16に戻る。
また、ステップS222において、色差変換ブロックの横幅が閾値以下であると判定された場合(log2TBWSize <= TH)、処理はステップS224に進む。ステップS224において、逆プライマリ変換選択部132は、(逆)プライマリ水平変換の変換タイプTrTypeIdxHを、所定値に設定する。ステップS224の処理が終了すると、プライマリ水平変換タイプ導出処理が終了し、処理は図16に戻る。
垂直方向についても同様である。例えば、図16のステップS145において、以下の式(24)のように、色差変換ブロックの縦幅(ここでは、縦幅の対数値log2TBHSize)が閾値TH以下の場合、(逆)プライマリ垂直変換の変換タイプTrTypeIdxVとして所定の変換タイプ(DCT-2)を設定し、それ以外の場合、垂直変換セット識別子TrSetV、プライマリ垂直変換指定フラグpt_ver_flagに基づいて、(逆)プライマリ垂直変換の変換タイプTrTypeIdxVを設定するようにしてもよい。なお、式(24)において、閾値THの具体例は、例えば1や2と設定する。また、式(24)において、変換ブロックの縦幅の対数値log2TBHSizeの代わりに、縦幅TBHに置き換えてもよい。その場合、閾値TH'は、1<<THと設定される。
if (compID==COMPONENT_Y ){
TrTypeIdxV = LUT_TrSetToTrTypeIdx[ TrSetV ][ pt_ver_flag ]
} else if (log2TBHSize<=TH){
TrTypeIdxV = 所定値 (DCT-IIを示す変換タイプの値を設定)
} else {
TrTypeIdxV = LUT_TrSetToTrTypeIdx[ TrSetV ][ pt_ver_flag ]
}
・・・(24)
このような、図16のステップS145において実行されるプライマリ垂直変換タイプ導出処理の流れの例を、図26のフローチャートを参照して説明する。プライマリ垂直変換タイプ導出処理が開始されると、逆プライマリ変換選択部132は、ステップS231において、処理対象が輝度の変換ブロックであるか否かを判定する。色差の変換ブロックであると判定された場合、処理はステップS232に進む。ステップS232において、逆プライマリ変換選択部132は、色差変換ブロックの縦幅(縦幅の対数値log2TBHSize)が閾値TH以下であるか否かを判定する。色差変換ブロックの縦幅が閾値より大きいと判定された場合(log2TBHSize > TH)、処理はステップS233に進む。また、ステップS231において、処理対象が輝度の変換ブロックであると判定された場合、処理はステップS233に進む。
ステップS233において、逆プライマリ変換選択部132は、(逆)プライマリ垂直変換の変換タイプTrTypeIdxVを、図1に示す変換セットと変換タイプの対応表(LUT_TrSetToTrTypeIdx)、プライマリ垂直変換セットTrSetV、およびプライマリ垂直変換指定フラグpt_ver_flagに基づいて設定する。ステップS233の処理が終了すると、プライマリ垂直変換タイプ導出処理が終了し、処理は図16に戻る。
また、ステップS232において、色差変換ブロックの横幅が閾値以下であると判定された場合(log2TBHSize <= TH)、処理はステップS234に進む。ステップS234において、逆プライマリ変換選択部132は、(逆)プライマリ垂直変換の変換タイプTrTypeIdxVを、所定値に設定する。ステップS234の処理が終了すると、プライマリ垂直変換タイプ導出処理が終了し、処理は図16に戻る。
色差の変換ブロックの横幅(縦幅)が所定値未満(例えば4)の場合、(逆)プライマリ水平(垂直)変換として、DST-7/DST-1/DCT-5/DCT-8とDCT-2とでは、符号化効率の差が小さい。したがって、色差の変換ブロックの横幅(縦幅)が所定値未満(例えば4)の場合、(逆)プライマリ水平(垂直)変換として、所定の直交変換(DCT-2)を選択することにより、所定値未満のサイズの適応プライマリ変換に利用される直交変換に関する回路規模を削減することができる。
<3.第2の実施の形態>
<ts_flag>
なお、第1の実施の形態においては、(逆)直交変換に関する情報として、適応プライマリ変換フラグapt_flagとプライマリ変換識別子pt_idxを例に説明したが、(逆)直交変換に関する情報の内容は任意であり、これらのパラメータに限定されない。例えば、図6の表に示されるように、(逆)直交変換処理をスキップするかを示す変換スキップフラグts_flagを含むようにしてもよい。例えば、色差(Cb)の変換スキップフラグts_flag[Cb]と色差(Cr)の変換スキップフラグts_flag[Cr]とをそれぞれ、輝度の変換スキップフラグts_flag[Y]に基づいて導出することにより、色差(Cb/Cr)でシグナルされる該シンタックスの符号量に関するオーバーヘッドの増大も抑制することができる。
図27の表を参照してさらに説明する。従来は、No.#0の行のように、色差においても、変換スキップフラグts_flagは符号化側から復号側に伝送されていた(シグナリングされていた)。このように、輝度だけでなく色差においても変換スキップフラグts_flagを明示的に符号化すると、符号量が増大し、符号化効率が低減するおそれがあった。また、この場合、符号化側においては各信号(Y, Cb, Cr)毎に変換スキップフラグts_flagの設定や符号化を行わなければならず、処理量が増大するおそれがあった。また復号側においては、各信号(Y, Cb, Cr)毎に変換スキップフラグts_flagの復号を行わなければならず、処理量が増大するおそれがあった。
そこで、例えばNo.#1の行のように、常に、色差の変換スキップフラグts_flagを、輝度の変換スキップフラグts_flagから推定するようにする。例えば、色差の変換スキップフラグts_flag[compID]の値に、輝度の変換スキップフラグts_flag[COMPONENT_Y]の値をセットするようにしてもよい。このようにすることにより、色差の変換スキップフラグts_flagの伝送(符号化・復号)を省略することができるので、符号化効率の低減を抑制することができる。また、符号化や復号の負荷の増大も抑制することができる。
また、例えばNo.#2の行のように、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、色差の変換スキップフラグts_flag[compID]の値に輝度の変換スキップフラグts_flag[COMPONENT_Y]の値をセットし、その符号化ブロックの予測タイプがイントラ予測である場合、色差の変換スキップフラグts_flag[compID]がシグナリングされる(すなわち、色差の変換スキップフラグts_flag[compID]は、符号化データから復号して得る)ようにしてもよい。このようにすることにより、残差信号の傾向が類似するインター予測モードの場合のみ、輝度の変換スキップフラグts_flagの値を利用するようにすることができるので、符号化効率の低減をより抑制することができる。
さらに、例えばNo.#3の行のように、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、または、輝度と色差とで予測モードが一致するイントラ予測である場合、色差の変換スキップフラグts_flag[compID]の値に輝度の変換スキップフラグts_flag[COMPONENT_Y]の値をセットし、その符号化ブロックの予測タイプが輝度と色差とで予測モードが一致しないイントラ予測である場合、色差の変換スキップフラグts_flag[compID]がシグナリングされる(すなわち、色差の変換スキップフラグts_flag[compID]は、符号化データから復号して得る)ようにしてもよい。このようにすることにより、残差信号の傾向が類似する予測モードの場合のみ、輝度の変換スキップフラグts_flagの値を利用するようにすることができるので、符号化効率の低減をより抑制することができる。
また、例えばNo.#4の行のように、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、または、予測モードがイントラブロックコピーのイントラ予測である場合、色差の変換スキップフラグts_flag[compID]の値に輝度の変換スキップフラグts_flag[COMPONENT_Y]の値をセットし、その符号化ブロックの予測タイプが、予測モードがイントラブロックコピーでないイントラ予測である場合、色差の変換スキップフラグts_flag[compID]がシグナリングされる(すなわち、色差の変換スキップフラグts_flag[compID]は、符号化データから復号して得る)ようにしてもよい。このようにすることにより、残差信号の傾向が類似する予測モードの場合のみ、輝度の変換スキップフラグts_flagの値を利用するようにすることができるので、符号化効率の低減をより抑制することができる。
また、例えばNo.#5の行のように、色差の変換スキップフラグts_flag[compID]を輝度の変換スキップフラグts_flag[COMPONENT_Y]に基づいて推定するかを示す色差変換スキップ情報推定フラグchroma_ts_info_infer_flagが1(真)の場合、色差の変換スキップフラグts_flag[copmID]の値に輝度の変換スキップフラグts_flag[COMPONENT_Y]の値をセットし、色差変換スキップ情報推定フラグchroma_ts_info_infer_flagが0(偽)の場合、色差の変換スキップフラグts_flag[compID]がシグナリングされる(すなわち、色差の変換スキップフラグts_flag[compID]は、符号化データから復号して得る)ようにしてもよい。このようにすることにより、輝度の変換スキップフラグの値を利用するか否かを、色差変換スキップ情報推定フラグchroma_ts_info_infer_flagを用いて明示的に制御することができる。したがって、容易に、十分に大きな効果が得られる場合のみ輝度の変換スキップフラグの値を利用させるようにすることができるので、符号化効率の低減をより抑制することができる。
なお、図7の場合と同様に、以上に説明した各ケースを任意に組み合わせることもできる。このようにすることにより、各ケースにおいて得られる効果を得ることができる。また、上述した各ケースを、上述していない他のケースと組み合わせることもできる。
<基本例1>
図27のNo.#1の行を参照して説明したように、常に、色差の変換スキップフラグts_flagを、輝度の変換スキップフラグts_flagから推定するようにしてもよい。この場合の、residual_codingのシンタックスの例を図28に示す。図28に示されるように、この場合、変換スキップフラグts_flagをシグナリングする条件に、「compID == COMPONENT_Y」が含まれている。換言するに、色差の場合(compID != COMPONENT_Y)、変換スキップフラグts_flagはシグナリングされずに、輝度の変換スキップフラグを用いて設定される。
このような場合、復号部111は、変換スキップフラグ導出処理を実行することにより、色差の変換スキップフラグts_flag[compID]をセットする。その変換スキップフラグ導出処理の流れの例を、図29のフローチャートを参照して説明する。
変換スキップフラグ導出処理が開始されると、復号部111は、ステップS241において、変換スキップフラグ有効フラグts_enabled_flagが真であるか否かを判定する。変換スキップフラグ有効フラグts_enabled_flagが真であると判定された場合、処理はステップS242に進む。ステップS242において、復号部111は、変換量子化バイパス有効フラグtransquant_bypass_enabled_flagが偽であるか否かを判定する。変換量子化バイパス有効フラグtransquant_bypass_enabled_flagが偽であると判定された場合、処理はステップS243に進む。ステップS243において、復号部111は、処理対象の変換ブロックのブロックサイズが最大変換スキップブロックサイズ以下であるか否かを判定する。最大変換スキップブロックサイズ以下であると判定された場合、処理はステップS244に進む。
ステップS244において、復号部111は、処理対象が色差である(compID != COMPONENT_Y)か否かを判定する。処理対象が色差である(compID != COMPONENT_Y)と判定した場合、処理はステップS245に進む。ステップS245において、復号部111は、色差の変換スキップフラグts_flag[compID]の値に、輝度の変換スキップフラグts_flag[COMPONENT_Y]の値をセットする。ステップS245の処理が終了すると変換スキップフラグ導出処理が終了する。
また、ステップS244において、処理対象が輝度である(compID == COMPONENT_Y)と判定された場合、処理はステップS246に進む。輝度の変換スキップフラグts_flag[compID]はシグナリングされるので、ステップS246において、復号部111は、符号化データを復号してその輝度の変換スキップフラグts_flag[compID]を得る。ステップS246の処理が終了すると変換スキップフラグ導出処理が終了する。
なお、ステップS241において、変換スキップフラグ有効フラグts_enabled_flagが偽であると判定された場合、ステップS242において、変換量子化バイパス有効フラグtransquant_bypass_enabled_flagが真であると判定された場合、または、ステップS243において、処理対象の変換ブロックのブロックサイズが最大変換スキップブロックサイズより大きいと判定された場合、変換スキップフラグ導出処理が終了する。
このようにすることにより、色差の変換スキップフラグts_flagの伝送(符号化・復号)を省略することができるので、符号化効率の低減を抑制することができる。また、符号化や復号の負荷の増大も抑制することができる。
<変形例1>
図27のNo.#2の行を参照して説明したように、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、色差の変換スキップフラグts_flag[compID]の値に輝度の変換スキップフラグts_flag[COMPONENT_Y]の値をセットし、その符号化ブロックの予測タイプがイントラ予測である場合、色差の変換スキップフラグts_flag[compID]がシグナリングされる(すなわち、色差の変換スキップフラグts_flag[compID]は、符号化データから復号して得る)ようにしてもよい。
この場合の、residual_codingのシンタックスの例を図30に示す。図30に示されるように、この場合、変換スキップフラグts_flagのシグナリングの条件に「&& (CuPreMode == MODE_INTRA || CuPreMode == MODE_INTER && compID == COMPONENT_Y)」が含まれている。つまり、予測モードがイントラ予測であるか、予測モードがインター予測であっても輝度である場合に変換スキップフラグts_flagがシグナリングされる。換言するに、色差でインター予測の場合のみ、変換スキップフラグts_flagはシグナリングされない。つまり、この場合、変換スキップフラグts_flagは、輝度の変換スキップフラグts_flagを用いて設定される。
この場合の、変換スキップフラグ導出処理の流れの例を、図31のフローチャートを参照して説明する。ステップS251乃至ステップS254の各処理は、図29のステップS241乃至ステップS244の各処理と同様に実行される。
ステップS255において、復号部111は、さらに、予測モードがインター予測であるか否かを判定する。インター予測であると判定された場合(CuPredMode == MODE_INTER)、処理はステップS256に進む。また、予測モードがイントラ予測であると判定された場合(CuPredMode == MODE_INTRA)、処理はステップS257に進む。
ステップS256の処理は、図29のステップS245の処理と同様に実行される。つまり、復号部111は、色差の変換スキップフラグts_flag[compID]の値に、輝度の変換スキップフラグts_flag[COMPONENT_Y]の値をセットする。ステップS256の処理が終了すると変換スキップフラグ導出処理が終了する。
また、ステップS257の処理は、図29のステップS246の処理と同様に実行される。つまり、復号部111は、符号化データを復号して、シグナリングされた変換スキップフラグts_flag[compID]を得る。ステップS257の処理が終了すると変換スキップフラグ導出処理が終了する。
このようにすることにより、残差信号の傾向が類似するインター予測モードの場合のみ、輝度の変換スキップフラグts_flagの値を利用して、色差の変換スキップフラグts_flagの伝送(符号化・復号)を省略することができるので、符号化効率の低減を抑制することができる。また、符号化や復号の負荷の増大も抑制することができる。
<変形例2>
図27のNo.#3の行を参照して説明したように、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、または、輝度と色差とで予測モードが一致するイントラ予測である場合、色差の変換スキップフラグts_flag[compID]の値に輝度の変換スキップフラグts_flag[COMPONENT_Y]の値をセットし、その符号化ブロックの予測タイプが輝度と色差とで予測モードが一致しないイントラ予測である場合、色差の変換スキップフラグts_flag[compID]がシグナリングされる(すなわち、色差の変換スキップフラグts_flag[compID]は、符号化データから復号して得る)ようにしてもよい。
この場合の、residual_codingのシンタックスの例を図32に示す。図32に示されるように、この場合、変換スキップフラグts_flagのシグナリングの条件に「&& (CuPreMode == MODE_INTRA && compID == COMPONENT_Y || CuPreMode == MODE_INTRA && compID != COMPONENT_Y && IntraPredModeY != IntraPredModeC CuPredMode == MODE_INTER && compID == COMPONENT_Y)」が含まれている。つまり、輝度であるか、または、色差であっても輝度と色差とで予測モードが一致しないイントラ予測である場合に変換スキップフラグts_flagがシグナリングされる。換言するに、色差でインター予測であるか、または、色差であり、かつ、輝度と色差とで予測モードが一致するイントラ予測である場合のみ、変換スキップフラグts_flagはシグナリングされない。つまり、この場合、変換スキップフラグts_flagは、輝度の変換スキップフラグts_flagを用いて設定される。
この場合の、変換スキップフラグ導出処理の流れの例を、図33のフローチャートを参照して説明する。ステップS261乃至ステップS265の各処理は、図31のステップS251乃至ステップS255の各処理と同様に実行される。
ステップS265においてイントラ予測であると判定された場合、処理はステップS266に進む。ステップS266において、復号部111は、輝度と色差とで予測モードが一致するか否かを判定する。予測モードが一致する(IntraPredModeY == IntraPredModeC)と判定された場合、処理はステップS267に進む。また、予測モードが一致しないと判定された場合、処理はステップS268に進む。
ステップS267の処理は、図31のステップS256の処理と同様に実行される。つまり、復号部111は、色差の変換スキップフラグts_flag[compID]の値に、輝度の変換スキップフラグts_flag[COMPONENT_Y]の値をセットする。ステップS267の処理が終了すると変換スキップフラグ導出処理が終了する。
また、ステップS268の処理は、図31のステップS257の処理と同様に実行される。つまり、復号部111は、符号化データを復号して、シグナリングされた変換スキップフラグts_flag[compID]を得る。ステップS268の処理が終了すると変換スキップフラグ導出処理が終了する。
このようにすることにより、残差信号の傾向が類似する予測モードの場合のみ、輝度の変換スキップフラグts_flagの値を利用して、色差の変換スキップフラグts_flagの伝送(符号化・復号)を省略することができるので、符号化効率の低減を抑制することができる。また、符号化や復号の負荷の増大も抑制することができる。
<変形例3>
図27のNo.#4の行を参照して説明したように、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、または、予測モードがイントラブロックコピーのイントラ予測である場合、色差の変換スキップフラグts_flag[compID]の値に輝度の変換スキップフラグts_flag[COMPONENT_Y]の値をセットし、その符号化ブロックの予測タイプが、予測モードがイントラブロックコピーでないイントラ予測である場合、色差の変換スキップフラグts_flag[compID]がシグナリングされる(すなわち、色差の変換スキップフラグts_flag[compID]は、符号化データから復号して得る)ようにしてもよい。
この場合の、residual_codingのシンタックスの例を図34に示す。図34に示されるように、この場合、変換スキップフラグts_flagのシグナリングの条件に「&& (CuPreMode == MODE_INTRA && compID == COMPONENT_Y || CuPreMode == MODE_INTRA && compID != COMPONENT_Y && IntraPredModeY != IntraBC CuPredMode == MODE_INTER && compID == COMPONENT_Y)」が含まれている。つまり、輝度であるか、または、色差であっても予測モードがイントラブロックコピーでないイントラ予測である場合に変換スキップフラグts_flagがシグナリングされる。換言するに、色差でインター予測であるか、または、色差であり、かつ、予測モードがイントラブロックコピーのイントラ予測である場合のみ、変換スキップフラグts_flagはシグナリングされない。つまり、この場合、変換スキップフラグts_flagは、輝度の変換スキップフラグts_flagを用いて設定される。
この場合の、変換スキップフラグ導出処理の流れの例を、図35のフローチャートを参照して説明する。ステップS271乃至ステップS275の各処理は、図33のステップS261乃至ステップS265の各処理と同様に実行される。
ステップS275においてイントラ予測であると判定された場合、処理はステップS276に進む。ステップS276において、復号部111は、予測モードがイントラブロックコピーであるか否かを判定する。予測モードがイントラブロックコピーである(IntraPredModeY == IntraBC)と判定された場合、処理はステップS277に進む。また、予測モードがイントラブロックコピーであると判定された場合、処理はステップS278に進む。
ステップS277の処理は、図33のステップS267の処理と同様に実行される。つまり、復号部111は、色差の変換スキップフラグts_flag[compID]の値に、輝度の変換スキップフラグts_flag[COMPONENT_Y]の値をセットする。ステップS277の処理が終了すると変換スキップフラグ導出処理が終了する。
また、ステップS278の処理は、図33のステップS268の処理と同様に実行される。つまり、復号部111は、符号化データを復号して、シグナリングされた変換スキップフラグts_flag[compID]を得る。ステップS278の処理が終了すると変換スキップフラグ導出処理が終了する。
このようにすることにより、残差信号の傾向が類似する予測モードの場合のみ、輝度の変換スキップフラグts_flagの値を利用して、色差の変換スキップフラグts_flagの伝送(符号化・復号)を省略することができるので、符号化効率の低減を抑制することができる。また、符号化や復号の負荷の増大も抑制することができる。
<変形例4>
図27のNo.#5の行を参照して説明したように、色差変換スキップ情報推定フラグchroma_ts_info_infer_flagが1(真)の場合、色差の変換スキップフラグts_flag[copmID]の値に輝度の変換スキップフラグts_flag[COMPONENT_Y]の値をセットし、色差変換スキップ情報推定フラグchroma_ts_info_infer_flagが0(偽)の場合、色差の変換スキップフラグts_flag[compID]がシグナリングされる(すなわち、色差の変換スキップフラグts_flag[compID]は、符号化データから復号して得る)ようにしてもよい。
この場合の、transform unitのシンタックスの例を図36に示す。図36に示されるように、色差変換スキップ情報推定フラグchroma_ts_info_infer_flagがセットされる。また、residual_codingのシンタックスの例を図37に示す。図37に示されるように、この場合、変換スキップフラグts_flagのシグナリングの条件に「&& compID != COMPONENT_Y && !chroma_ts_info_infer_flag」が含まれている。つまり、輝度であるか、または、色差であっても色差変換スキップ情報推定フラグchroma_ts_info_infer_flagが偽である場合に変換スキップフラグts_flagがシグナリングされる。換言するに、色差であり、かつ、色差変換スキップ情報推定フラグchroma_ts_info_infer_flagが真である場合のみ、変換スキップフラグts_flagはシグナリングされない。つまり、この場合、変換スキップフラグts_flagは、輝度の変換スキップフラグts_flagを用いて設定される。
この場合の、変換スキップフラグ導出処理の流れの例を、図38のフローチャートを参照して説明する。ステップS281乃至ステップS283の各処理は、図29のステップS241乃至ステップS245の各処理と同様に実行される。
ステップS284において復号部111は、処理対象が色差であり、かつ、色差変換スキップ情報推定フラグchroma_ts_info_infer_flagが真であるかを判定する。色差であり、かつ、真であると判定される場合、処理はステップS285に進む。また、ステップS284において、処理対象が輝度である、または、色差変換スキップ情報推定フラグchroma_ts_info_infer_flagが偽であると判定された場合、処理はステップS286に進む。
ステップS285の処理は、図29のステップS245の処理と同様に実行される。つまり、復号部111は、色差の変換スキップフラグts_flag[compID]の値に、輝度の変換スキップフラグts_flag[COMPONENT_Y]の値をセットする。ステップS285の処理が終了すると変換スキップフラグ導出処理が終了する。
また、ステップS286の処理は、図29のステップS246の処理と同様に実行される。つまり、復号部111は、符号化データを復号して、シグナリングされた変換スキップフラグts_flag[compID]を得る。ステップS286の処理が終了すると変換スキップフラグ導出処理が終了する。
このようにすることにより、輝度の変換スキップフラグの値を利用するか否かを、色差変換スキップ情報推定フラグchroma_ts_info_infer_flagを用いて明示的に制御することができる。したがって、容易に、十分に大きな効果が得られる場合のみ輝度の変換スキップフラグの値を利用させるようにすることができるので、符号化効率の低減をより抑制することができる。また、符号化や復号の負荷の増大も抑制することができる。
<4.第3の実施の形態>
<st_idx>
また、(逆)直交変換に関する情報として、例えば、図6の表に示されるように、どの(逆)セカンダリ変換を適用するかを示すセカンダリ変換識別子st_idxを含むようにしてもよい。例えば、色差(CbおよびCr共通)のセカンダリ変換識別子chroma_st_idxを、輝度のセカンダリ変換識別子st_idx[Y]に基づいて導出することにより、色差(Cb/Cr)でシグナルされる該シンタックスの符号量に関するオーバーヘッドの増大も抑制することができる。
図39の表を参照してさらに説明する。従来は、No.#0の行のように、色差においても、セカンダリ変換識別子st_idxは符号化側から復号側に伝送されていた(シグナリングされていた)。図40は、従来のTUのシンタックスの例である。図40のシンタックスにも示されるように、色差のセカンダリ変換識別子chroma_st_idxがシグナリングされる。このように、輝度だけでなく色差においてもセカンダリ変換識別子st_idxを明示的に符号化すると、符号量が増大し、符号化効率が低減するおそれがあった。また、この場合、符号化側においては各信号(Y, Cb, Cr)毎にセカンダリ変換識別子st_idxの設定や符号化を行わなければならず、処理量が増大するおそれがあった。また復号側においては、各信号(Y, Cb, Cr)毎にセカンダリ変換識別子st_idxの復号を行わなければならず、処理量が増大するおそれがあった。
そこで、例えばNo.#1の行のように、常に、色差のセカンダリ変換識別子chroma_st_idxを、輝度のセカンダリ変換識別子st_idxから推定するようにする。例えば、色差のセカンダリ変換識別子chroma_st_idxの値に、輝度のセカンダリ変換識別子st_idxの値をセットするようにしてもよい。このようにすることにより、色差のセカンダリ変換識別子chroma_st_idxの伝送(符号化・復号)を省略することができるので、符号量に関するオーバーヘッドを削減し、符号化効率の低減を抑制することができる。また、符号化や復号の負荷の増大も抑制することができる。
また、例えばNo.#2の行のように、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、色差のセカンダリ変換識別子chroma_st_idxの値に輝度のセカンダリ変換識別子st_idxの値をセットし、その符号化ブロックの予測タイプがイントラ予測である場合、色差のセカンダリ変換識別子chroma_st_idxがシグナリングされる(すなわち、色差のセカンダリ変換識別子chroma_st_idxは、符号化データから復号して得る)ようにしてもよい。このようにすることにより、残差信号の傾向が類似するインター予測モードの場合のみ、輝度のセカンダリ変換識別子st_idxの値を利用するようにすることができるので、符号化効率の低減をより抑制することができる。
さらに、例えばNo.#3の行のように、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、または、輝度と色差とで予測モードが一致するイントラ予測である場合、色差のセカンダリ変換識別子chroma_st_idxの値に輝度のセカンダリ変換識別子st_idxの値をセットし、その符号化ブロックの予測タイプが輝度と色差とで予測モードが一致しないイントラ予測である場合、色差のセカンダリ変換識別子chroma_st_idxがシグナリングされる(すなわち、色差のセカンダリ変換識別子chroma_st_idxは、符号化データから復号して得る)ようにしてもよい。このようにすることにより、残差信号の傾向が類似する予測モードの場合のみ、輝度のセカンダリ変換識別子st_idxの値を利用するようにすることができるので、符号化効率の低減をより抑制することができる。
また、例えばNo.#4の行のように、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、または、予測モードがイントラブロックコピーのイントラ予測である場合、色差のセカンダリ変換識別子chroma_st_idxの値に輝度のセカンダリ変換識別子st_idxの値をセットし、その符号化ブロックの予測タイプが、予測モードがイントラブロックコピーでないイントラ予測である場合、色差のセカンダリ変換識別子chroma_st_idxがシグナリングされる(すなわち、色差のセカンダリ変換識別子chroma_st_idxは、符号化データから復号して得る)ようにしてもよい。このようにすることにより、残差信号の傾向が類似する予測モードの場合のみ、輝度のセカンダリ変換識別子st_idxの値を利用するようにすることができるので、符号化効率の低減をより抑制することができる。
また、例えばNo.#5の行のように、色差のセカンダリ変換識別子chroma_st_idxを輝度のセカンダリ変換識別子st_idxに基づいて推定するかを示す色差セカンダリ変換識別子推定フラグchroma_st_idx_infer_flagが1(真)の場合、色差のセカンダリ変換識別子st_idxの値に輝度のセカンダリ変換識別子st_idxの値をセットし、色差セカンダリ変換識別子推定フラグchroma_st_idx_infer_flagが0(偽)の場合、色差のセカンダリ変換識別子chroma_st_idxがシグナリングされる(すなわち、色差のセカンダリ変換識別子chroma_st_idxは、符号化データから復号して得る)ようにしてもよい。このようにすることにより、輝度のセカンダリ変換識別子st_idxの値を利用するか否かを、色差セカンダリ変換識別子推定フラグchroma_st_idx_infer_flagを用いて明示的に制御することができる。したがって、容易に、十分に大きな効果が得られる場合のみ輝度の色差セカンダリ変換識別子推定フラグchroma_st_idx_infer_flagの値を利用させるようにすることができるので、符号化効率の低減をより抑制することができる。
なお、図7の場合と同様に、以上に説明した各ケースを任意に組み合わせることもできる。このようにすることにより、各ケースにおいて得られる効果を得ることができる。また、上述した各ケースを、上述していない他のケースと組み合わせることもできる。
<基本例1>
図39のNo.#1の行を参照して説明したように、常に、色差のセカンダリ変換識別子chroma_st_idxを、輝度のセカンダリ変換識別子st_idxから推定するようにしてもよい。この場合の、TUのシンタックスの例を図41に示す。図41に示されるように、この場合、色差のセカンダリ変換識別子chroma_st_idxはシグナリングされずに、輝度のセカンダリ変換識別子st_idxを用いて設定される。
このような場合、復号部111は、色差用セカンダリ変換識別子導出処理を実行することにより、色差のセカンダリ変換識別子chroma_st_idxをセットする。その色差用セカンダリ変換識別子導出処理の流れの例を、図42のフローチャートを参照して説明する。
色差用セカンダリ変換識別子導出処理が開始されると、復号部111は、ステップS291において、セカンダリ変換有効フラグst_enabled_flagが真であるか否かを判定する。セカンダリ変換有効フラグst_enabled_flagが真であると判定された場合、処理はステップS292に進む。ステップS292において、復号部111は、変換量子化バイパス有効フラグtransquant_bypass_enabled_flagが偽であるか否かを判定する。変換量子化バイパス有効フラグtransquant_bypass_enabled_flagが偽であると判定された場合、処理はステップS293に進む。ステップS293において、復号部111は、色差の非ゼロ係数の数(numNonZeroCoeffTH)が所定の閾値(stNumZeroCoeffTH)以上か否かを判定する。色差の非ゼロ係数の数が所定の閾値以上であると判定された場合、処理はステップS294に進む。
ステップS294において、復号部111は、色差のセカンダリ変換識別子chroma_st_idxの値に、輝度のセカンダリ変換識別子st_idxの値をセットする。ステップS294の処理が終了すると色差用セカンダリ変換識別子導出処理が終了する。
なお、ステップS291において、セカンダリ変換有効フラグst_enabled_flagが偽であると判定された場合、色差用セカンダリ変換識別子導出処理が終了する。また、ステップS292において、変換量子化バイパス有効フラグtransquant_bypass_enabled_flagが真であると判定された場合、色差用セカンダリ変換識別子導出処理が終了する。さらに、ステップS293において、色差の非ゼロ係数の数が所定の閾値よりも少ないと判定された場合、色差用セカンダリ変換識別子導出処理が終了する。
このようにすることにより、色差のセカンダリ変換識別子chroma_st_idxの伝送(符号化・復号)を省略することができるので、符号化効率の低減を抑制することができる。また、符号化や復号の負荷の増大も抑制することができる。
<変形例1>
図39のNo.#2の行を参照して説明したように、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、色差のセカンダリ変換識別子chroma_st_idxの値に輝度のセカンダリ変換識別子st_idxの値をセットし、その符号化ブロックの予測タイプがイントラ予測である場合、色差のセカンダリ変換識別子chroma_st_idxがシグナリングされる(すなわち、色差のセカンダリ変換識別子chroma_st_idxは、符号化データから復号して得る)ようにしてもよい。
この場合の、TUのシンタックスの例を図43に示す。図43に示されるように、この場合、予測モードがイントラ予測の場合(CuPreMode == MODE_INTRA)、色差のセカンダリ変換識別子chroma_st_idxがシグナリングされる。また、予測モードがイントラ予測の場合(CuPreMode == MODE_INTER)、色差のセカンダリ変換識別子chroma_st_idxは、輝度のセカンダリ変換識別子st_idxの値を使って設定される。
この場合の、色差用セカンダリ変換識別子導出処理の流れの例を、図44のフローチャートを参照して説明する。ステップS301乃至ステップS303の各処理は、図42のステップS291乃至ステップS293の各処理と同様に実行される。
ステップS304において、復号部111は、さらに、予測モードがイントラ予測であるか否かを判定する。インター予測であると判定された場合(CuPredMode == MODE_INTER)、処理はステップS305に進む。
ステップS305の処理は、図42のステップS294の処理と同様に実行される。つまり、復号部111は、色差のセカンダリ変換識別子chroma_st_idxの値に、輝度のセカンダリ変換識別子st_idxの値をセットする。ステップS305の処理が終了すると色差用セカンダリ変換識別子導出処理が終了する。
また、予測モードがイントラ予測であると判定された場合(CuPredMode == MODE_INTRA)、処理はステップS306に進む。ステップS306において、復号部111は、符号化データを復号して、シグナリングされたセカンダリ変換識別子st_idxを得る。ステップS306の処理が終了すると色差用セカンダリ変換識別子導出処理が終了する。
このようにすることにより、残差信号の傾向が類似するインター予測モードの場合のみ、輝度のセカンダリ変換識別子st_idxの値を利用して、色差のセカンダリ変換識別子chroma_st_idxの伝送(符号化・復号)を省略することができるので、符号化効率の低減を抑制することができる。また、符号化や復号の負荷の増大も抑制することができる。
<変形例2>
図39のNo.#3の行を参照して説明したように、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、または、輝度と色差とで予測モードが一致するイントラ予測である場合、復号部111は、色差のセカンダリ変換識別子chroma_st_idxの値に輝度のセカンダリ変換識別子st_idxの値をセットする。また、その符号化ブロックの予測タイプが輝度と色差とで予測モードが一致しないイントラ予測である場合、色差のセカンダリ変換識別子chroma_st_idxがシグナリングされる(すなわち、色差のセカンダリ変換識別子chroma_st_idxは、符号化データから復号して得る)ようにしてもよい。
この場合の、TUのシンタックスの例を図45に示す。図45に示されるように、この場合、イントラ予測モードであり(CuPredMode==MODE_INTRA)、かつ、輝度と色差とで予測モードが一致しない場合、セカンダリ変換識別子chroma_st_idxがシグナリングされる。それ以外の場合、色差のセカンダリ変換識別子chroma_st_idxに、輝度のセカンダリ変換識別子st_idxがセットされる。
この場合の、色差用セカンダリ変換識別子導出処理の流れの例を、図46のフローチャートを参照して説明する。ステップS311乃至ステップS314の各処理は、図44のステップS301乃至ステップS304の各処理と同様に実行される。
ステップS314において、イントラ予測であると判定された場合、処理はステップS315に進む。また、インター予測であると判定された場合、処理はステップS316に進む。ステップS315において、復号部111は、輝度と色差とで予測モードが一致するか否かを判定する。一致すると判定された場合(IntraPredModeY == IntraPredModeC)、処理はステップS316に進む。また、一致しないと判定された場合(IntraPredModeY != IntraPredModeC)、処理はステップS317に進む。
ステップS316の処理は、図44のステップS305の処理と同様に実行される。また、ステップS317の処理は、図44のステップS306の処理と同様に実行される。
このようにすることにより、残差信号の傾向が類似する予測モードの場合のみ、輝度のセカンダリ変換識別子st_idxの値を利用して、色差のセカンダリ変換識別子chroma_st_idxの伝送(符号化・復号)を省略することができるので、符号化効率の低減を抑制することができる。また、符号化や復号の負荷の増大も抑制することができる。
<変形例3>
図39のNo.#4の行を参照して説明したように、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、または、予測モードがイントラブロックコピーのイントラ予測である場合、色差のセカンダリ変換識別子chroma_st_idxの値に輝度のセカンダリ変換識別子st_idxの値をセットし、その符号化ブロックの予測タイプが、予測モードがイントラブロックコピーでないイントラ予測である場合、色差のセカンダリ変換識別子chroma_st_idxがシグナリングされる(すなわち、色差のセカンダリ変換識別子chroma_st_idxは、符号化データから復号して得る)ようにしてもよい。
この場合の、TUのシンタックスの例を図47に示す。図47に示されるように、輝度であるか、または、色差であっても予測モードがイントラブロックコピーでないイントラ予測である場合(CuPredMode == MODE_INTRA && IntraPredModeY != IntraBC)に、セカンダリ変換識別子st_idxがシグナリングされる。換言するに、色差でインター予測であるか、または、色差であり、かつ、予測モードがイントラブロックコピーのイントラ予測である場合のみ、セカンダリ変換識別子st_idxはシグナリングされない。つまり、この場合、セカンダリ変換識別子chroma_st_idxは、輝度のセカンダリ変換識別子st_idxを用いて設定される。
この場合の、色差用セカンダリ変換識別子導出処理の流れの例を、図48のフローチャートを参照して説明する。ステップS321乃至ステップS324の各処理は、図46のステップS311乃至ステップS314の各処理と同様に実行される。
ステップS324においてイントラ予測であると判定された場合、処理はステップS325に進む。また、インター予測であると判定された場合、処理はステップS326に進む。
ステップS325において、復号部111は、予測モードがイントラブロックコピーであるか否かを判定する。予測モードがイントラブロックコピーである(IntraPredModeY == IntraBC)と判定された場合、処理はステップS326に進む。また、予測モードがイントラブロックコピーであると判定された場合、処理はステップS327に進む。
ステップS326の処理は、図46のステップS316の処理と同様に実行される。つまり、復号部111は、色差のセカンダリ変換識別子chroma_st_idxの値に、輝度のセカンダリ変換識別子st_idxをセットする。ステップS326の処理が終了すると色差用セカンダリ変換識別子導出処理が終了する。
また、ステップS327の処理は、図46のステップS317の処理と同様に実行される。つまり、復号部111は、符号化データを復号して、シグナリングされたセカンダリ変換識別子st_idxを得る。ステップS327の処理が終了すると色差用セカンダリ変換識別子導出処理が終了する。
このようにすることにより、残差信号の傾向が類似する予測モードの場合のみ、輝度のセカンダリ変換識別子st_idxの値を利用して、色差のセカンダリ変換識別st_Idxの伝送(符号化・復号)を省略することができるので、符号化効率の低減を抑制することができる。また、符号化や復号の負荷の増大も抑制することができる。
<変形例4>
図39のNo.#5の行を参照して説明したように、色差セカンダリ変換識別子推定フラグchroma_st_idx_infer_flagが1(真)の場合、色差のセカンダリ変換識別子chroma_st_idxの値に輝度のセカンダリ変換識別子st_idxの値をセットし、色差セカンダリ変換識別子推定フラグchroma_st_idx_infer_flagが0(偽)の場合、色差のセカンダリ変換識別子st_idxがシグナリングされる(すなわち、色差のセカンダリ変換識別子chroma_st_idxは、符号化データから復号して得る)ようにしてもよい。
この場合の、TUのシンタックスの例を図49に示す。図49に示されるように、色差セカンダリ変換識別子推定フラグchroma_st_idx_infer_flagがセットされ、その値に応じて、色差のセカンダリ変換識別子chroma_st_idxがシグナリングされるか、輝度のセカンダリ変換識別子st_idxから求められるかが制御される。
この場合の、色差用セカンダリ変換識別子導出処理の流れの例を、図50のフローチャートを参照して説明する。ステップS331乃至ステップS333の各処理は、図48のステップS321乃至ステップS323の各処理と同様に実行される。
ステップS334において、復号部111は、色差セカンダリ変換識別子推定フラグchroma_st_idx_infer_flagを復号し、取得する。ステップS335において、復号部111は、取得した色差セカンダリ変換識別子推定フラグchroma_st_idx_infer_flagが真であるか否かを判定する。色差セカンダリ変換識別子推定フラグchroma_st_idx_infer_flagが真であると判定された場合、処理はステップS336に進む。また、色差セカンダリ変換識別子推定フラグchroma_st_idx_infer_flagが偽であると判定された場合、処理はステップS337に進む。
ステップS336の処理は、図48のステップS326の処理と同様に実行される。つまり、復号部111は、色差のセカンダリ変換識別子chroma_st_idxの値に、輝度のセカンダリ変換識別子st_idxの値をセットする。ステップS336の処理が終了すると色差用セカンダリ変換識別子導出処理が終了する。
また、ステップS337の処理は、図48のステップS327の処理と同様に実行される。つまり、復号部111は、符号化データを復号して、シグナリングされた色差のセカンダリ変換識別子chroma_st_idxを得る。ステップS337の処理が終了すると色差用セカンダリ変換識別子導出処理が終了する。
このようにすることにより、輝度のセカンダリ変換識別子st_idxの値を利用するか否かを、色差セカンダリ変換識別子推定フラグchroma_st_idx_infer_flagを用いて明示的に制御することができる。したがって、容易に、十分に大きな効果が得られる場合のみ輝度のセカンダリ変換識別子の値を利用させるようにすることができるので、符号化効率の低減をより抑制することができる。また、符号化や復号の負荷の増大も抑制することができる。
<5.第4の実施の形態>
<画像符号化装置>
次に、以上のように復号される符号化データを生成する符号化について説明する。図51は、本技術を適用した画像処理装置の一態様である画像符号化装置の構成の一例を示すブロック図である。図51に示される画像符号化装置400は、図9の画像復号装置100に対応する画像符号化装置であり、画像復号装置100により復号される符号化データ(ビットストリーム)を、画像復号装置100による復号方法に対応する符号化方法で画像を符号化することにより生成する。例えば、画像符号化装置400は、HEVCに提案された技術や、JVETにて提案された技術を実装している。
なお、図51においては、処理部やデータの流れ等の主なものを示しており、図51に示されるものが全てとは限らない。つまり、画像符号化装置400において、図51においてブロックとして示されていない処理部が存在したり、図51において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
図51に示されるように画像符号化装置400は、制御部411、演算部412、変換部413、量子化部414、符号化部415、逆量子化部416、逆変換部417、演算部418、フレームメモリ419、および予測部420を有する。
制御部411は、外部、または予め指定された処理単位のブロックサイズに基づいて、動画像#2を処理単位のブロック(CU, PU, 変換ブロックなど)へ分割し、分割されたブロックに対応する画像Iを演算部412へ入力する。また、制御部411は、各ブロックへ供給する符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo, 変換情報Tinfoなど)を、例えば、RDO(Rate-Distortion Optimization)に基づいて、決定する。決定された符号化パラメータは、各ブロックへ供給される。具体的には、以下の通りである。
ヘッダ情報Hinfoは、各ブロックに供給される。予測モード情報Pinfoは、変換部413、符号化部415、予測部420に供給される。変換情報Tinfoは、符号化部415、変換部413、量子化部414、逆量子化部416、および逆変換部417に供給される。
演算部412は、処理単位のブロックに対応する画像Iと、予測部420より供給される予測画像Pを入力とし、画像Iから予測画像Pを式(25)に示すように減算して、予測残差Dを導出し、変換部413に供給する。
D = I - P
・・・(25)
変換部413は、逆変換部417が行う変換処理の逆処理である逆変換を行う処理部であり、予測残差D、予測モード情報Pinfo、変換情報Tinfoを入力とし、予測モード情報Pinfoや変換情報Tinfoに基づいて、予測残差Dに対して、変換を適用し、変換係数Coeffを導出し、それを量子化部414に供給する。
量子化部414は、逆量子化部416の逆処理であり、変換情報Tinfoおよび変換係数Coeffを入力とし、変換情報Tinfoに基づいて、変換係数Coeffをスケーリング(量子化)し、量子化後の変換係数、すなわち量子化変換係数レベルlevelを符号化部415に供給する。
符号化部415は、復号部111(図9)の逆処理であり、シンタックステーブルの定義に沿って、制御部411から供給される符号化パラメータ(ヘッダ情報、予測モード情報Pinfo、変換情報Tinfo)、および量子化部414より供給される量子化変換係数レベルlevelを、各シンタックス要素のシンタックス値へ変換し、各シンタックス値を可変長符号化(例えば、算術符号)し、ビット列を生成する。
なお、符号化部415は、量子化変換係数レベルlevelから残差情報RInfoを導出し、残差情報RInfoを可変長符号化し、ビット列を生成する。また、符号化部415は、可変長符号化された各シンタックス要素のビット列を多重化し、符号化データ#1を生成して出力する。
逆量子化部416は、逆量子化部112(図9)と同様の処理部であり、画像符号化装置400において、逆量子化部112と同様の処理を行う。逆変換部417は、逆変換部113(図9)と同様の処理部であり、画像符号化装置400において、逆変換部113dと同様の処理を行う。フレームメモリ419は、フレームメモリ115(図9)と同様の処理部であり、画像符号化装置400において、フレームメモリ115と同様の処理を行う。予測部420は、予測部116(図9)と同様の処理部であり、画像符号化装置400において、予測部116と同様の処理を行う。
<変換部>
図52は、変換部413の主な構成例を示すブロック図である。図52に示されるように、変換部413は、スイッチ431、プライマリ変換部432、およびセカンダリ変換部433を有する。
スイッチ431は、予測残差Dおよび色信号識別子compIDに対応する色信号の変換スキップフラグts_flag[compID]を入力とし、変換スキップフラグts_flag[compID]の値がNO_TS(=0)の場合(変換スキップを適用しない場合)、プライマリ変換部432へ予測残差Dを出力する。また、変換スキップフラグts_flag[compID]の値が2D_TS(=1)の場合(2次元変換スキップを適用することを示す場合)、プライマリ変換部432およびセカンダリ変換部433をスキップし、予測残差Dを変換係数Coeffとして出力する。
プライマリ変換部432は、例えば直交変換等の所定の変換処理であるプライマリ変換に関する処理を行う。このプライマリ変換は、画像復号装置100の逆プライマリ変換部123等により実行される逆プライマリ変換の逆処理である。例えば、プライマリ変換部432は、色信号識別子compID、輝度の適応プライマリ変換フラグapt_flag[COMPONENT_Y]、輝度のプライマリ変換識別子pt_idx[COMPONENT_Y]、予測モード情報PInfo、変換ブロックのサイズ(横幅の対数値log2TBWSize, 縦幅の対数値log2TBHSize)、および予測残差Dを入力とする。プライマリ変換部432は、予測モード情報PInfo、色信号識別子compID、輝度の適応プライマリ変換フラグapt_flag[COMPONENT_Y]、輝度のプライマリ変換識別子pt_idx[COMPONENT_Y]、および輝度のプライマリ変換識別子pt_idx[COMPONENT_Y]を参照して、色信号識別子compIDで指定される色信号のプライマリ水平変換の変換タイプTrTypeIdxH、およびプライマリ垂直変換の変換タイプTrTypeIdxVを選択し、予測残差Dに対して、プライマリ水平変換タイプTrTypeIdxHと変換ブロックの横幅log2TBWSizeで定まるプライマリ水平変換、およびプライマリ垂直変換タイプTrTypeIdxVと変換ブロックの縦幅log2TBHSizeで定まるプライマリ垂直変換をして、プライマリ変換後の変換係数Coeff_P(プライマリ変換係数とも呼ぶ)を導出し、出力する。
以下では、より具体的に、プライマリ変換部432について説明する。図52に示すように、プライマリ変換部432は、色差適応プライマリ変換情報導出部441、プライマリ変換選択部442、プライマリ水平変換部443、およびプライマリ垂直変換部444を有する。
色差適応プライマリ変換情報導出部441は、色信号識別子compIDが色差を示す場合(compID==COMPONENT_Cb, COMPONENT_Cr)、色差変換ブロックに対応する輝度変換ブロックの適応プライマリ変換情報(apt_flag[COMPONENT_Y], pt_idx[COMPONENT_Y])を用いて、色差の適応プライマリ変換情報(apt_flag[compID], pt_idx[compID] (compID=COMPONENT_Cb, COMPONENT_Cr))を導出し、その結果をプライマリ変換選択部442に供給する。
<色差適応プライマリ変換情報導出部>
図53は、色差適応プライマリ変換情報導出部441が有する機能の主な構成例を示す機能ブロック図である。図53に示されるように、色差適応プライマリ変換情報導出部441は、apt_flag導出部451およびpt_idx導出部452を有する。apt_flag導出部451は、色差の適応プライマリ変換フラグapt_flagの導出に関する処理を行う。また、pt_idx導出部452は、色差のプライマリ変換識別子pt_idxの導出に関する処理を行う。つまり、apt_flag導出部451およびpt_idx導出部452は、それぞれ、apt_flag導出部151およびpt_idx導出部152(図11)と同様の構成を有し、同様の処理を行う。つまり、色差適応プライマリ変換情報導出部441は、色差適応プライマリ変換情報導出部131と同様の構成を有し、同様の処理を行う。したがって、色差適応プライマリ変換情報導出部441(apt_flag導出部151およびpt_idx導出部152)の動作についての詳細な説明は、第1の実施の形態においてした色差適応プライマリ変換情報導出部131に対する説明と同様であるので、省略する。
色差適応プライマリ変換情報導出部441は、色差変換ブロックに関する適応プライマリ変換情報を、色差変換ブロックに対応する輝度に関する適応プライマリ変換情報に基づいて導出することができる。したがって、色差変換ブロックに関する適応プライマリ変換情報を、符号化する必要がなく、符号化の処理量を削減することができる。
プライマリ変換選択部442は、予測モード情報PInfo、色信号識別子compID、色信号識別子compIDに対応する色信号の適応プライマリ変換フラグapt_flag[compID]、色信号識別子compIDに対応する色信号のプライマリ変換識別子pt_idx[compID]を入力とする。プライマリ変換選択部442は、予測モード情報PInfo、色信号識別子compID、色信号識別子compIDに対応する色信号の適応プライマリ変換フラグapt_flag[compID]、色信号識別子compIDに対応する色信号のプライマリ変換識別子pt_idx[compID]を参照して、色信号識別子compIDで指定される色信号のプライマリ水平変換の変換タイプTrTypeIdxH、およびプライマリ垂直変換の変換タイプTrTypeIdxVを導出する。プライマリ変換選択部442は、導出したプライマリ水平変換の変換タイプTrTypeIdxHをプライマリ水平変換部443に供給する。また、プライマリ変換選択部442は、導出したプライマリ垂直変換の変換タイプTrTypeIdxVをプライマリ垂直変換部444に供給する。
なお、プライマリ変換選択部442の動作は、画像復号装置100の逆プライマリ変換選択部132と基本的に同様である。つまり、第1の実施の形態においてした逆プライマリ変換選択部132に対する説明は、逆プライマリ水平変換IPThorをプライマリ水平変換PThorに置き換え、逆プライマリ垂直変換IPTverをプライマリ垂直変換PTverに置き換え、逆プライマリ変換をプライマリ変換に置き換えることにより、プライマリ変換選択部442に対する説明とすることができる。
プライマリ水平変換部443は、各色信号の変換ブロック毎に、予測残差D、プライマリ水平変換の変換タイプTrTypeIdxH、変換ブロックの横幅を示すlog2TBWSize(横幅の対数値)を入力とする。プライマリ水平変換部443は、予測残差Dに対して、変換タイプTrTypeIdxHと変換ブロックの横幅で定まるプライマリ水平変換Phorを実行し、その結果をプライマリ水平変換後の変換係数Coeff_Phorとして出力する。
プライマリ垂直変換部444は、各色信号の変換ブロック毎に、プライマリ水平変換後の変換係数Coeff_Phor、プライマリ垂直変換の変換タイプTrTypeIdxV、変換ブロックの縦幅を示すlog2TBHSize(縦幅の対数値)を入力とする。プライマリ水平変換後の変換係数Coeff_Phorに対して、変換タイプTrTypeIdxVと変換ブロックの縦幅で定まるプライマリ垂直変換Pverを実行し、その結果をプライマリ変換後の変換係数Coeff_Pとして出力する。
以上のように、プライマリ変換部432は、色差の残差信号が輝度の残差信号と傾向が類似する場合において、輝度において選択された適応プライマリ変換を、色差の変換ブロックに適用することが可能となる。したがって、従来技術と比較して、色差の残差信号に対して、符号化効率の向上したプライマリ変換処理を行うことができる。
また、輝度/色差毎に適応プライマリ変換フラグapt_flag、およびプライマリ変換識別子pt_idxを明示的に復号する場合と比較して、色差に関する符号化効率の低下を抑えつつ、エンコーダの処理量を削減することができる。
セカンダリ変換部433は、例えば直交変換等の所定の変換処理であるセカンダリ変換に関する処理を行う。このセカンダリ変換は、画像復号装置100の逆セカンダリ変換部122等により実行される逆セカンダリ変換の逆処理である。例えばセカンダリ変換部433は、セカンダリ変換識別子st_idx、変換係数のスキャン方法を示すスキャン識別子scanIdx、およびプライマリ変換係数Coeff_Pを入力とし、セカンダリ変換後の変換係数Coeff (セカンダリ変換係数とも呼ぶ)を導出し、出力する。より具体的には、セカンダリ変換識別子st_idxが、セカンダリ変換を適用することを示す場合(st_idx>0)、セカンダリ変換部433は、プライマリ変換係数Coeff_Pに対して、セカンダリ変換識別子st_idxに対応するセカンダリ変換の処理を実行し、セカンダリ変換後の変換係数Coeff_Sを出力する。
セカンダリ変換識別子st_idxが、セカンダリ変換を適用しないことを示す場合(st_idx==0)、セカンダリ変換部433は、セカンダリ変換をスキップし、プライマリ変換後の変換係数Coeff_Pをセカンダリ変換後の変換係数Coeff_Sとして出力する。
<画像符号化処理の流れ>
次に、以上のような画像符号化装置400により実行される各処理の流れについて説明する。最初に、図54のフローチャートを参照して、画像符号化処理の流れの例を説明する。
画像符号化処理が開始されると、ステップS401において、制御部411は、符号化制御処理を行い、ブロック分割や符号化パラメータの設定等を行う。
ステップS402において、予測部420は、予測処理を行い、最適な予測モードの予測画像等を生成する。例えば、この予測処理において、予測部420は、イントラ予測を行って最適なイントラ予測モードの予測画像等を生成し、インター予測を行って最適なインター予測モードの予測画像等を生成し、それらの中から、コスト関数値等に基づいて最適な予測モードを選択する。
ステップS403において、演算部412は、入力画像と、ステップS402の予測処理により選択された最適なモードの予測画像との差分を演算する。つまり、演算部412は、入力画像と予測画像との予測残差Dを生成する。このようにして求められた予測残差Dは、元の画像データに比べてデータ量が低減される。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
ステップS404において、変換部413は、ステップS403の処理により生成された予測残差Dに対して変換処理を行い、変換係数Coeffを導出する。なお、この変換処理は、ステップS407の逆変換処理の逆処理であり、上述した画像復号処理において実行される逆変換処理の逆処理である。ステップS404の処理の詳細については後述する。
ステップS405において、量子化部414は、制御部411により算出された量子化パラメータを用いる等して、ステップS404の処理により得られた変換係数Coeffを量子化し、量子化変換係数レベルlevelを導出する。
ステップS406において、逆量子化部416は、ステップS405の処理により生成された量子化変換係数レベルlevelを、そのステップS405の量子化の特性に対応する特性で逆量子化し、変換係数Coeff_IQを導出する。
ステップS407において、逆変換部417は、ステップS406の処理により得られた変換係数Coeff_IQを、ステップS404の変換処理に対応する方法で逆変換し、予測残差D'を導出する。なお、この逆変換処理は、上述した画像復号処理において実行される逆変換処理と同様に実行される。
ステップS408において、演算部418は、ステップS407の処理により導出された予測残差D'に、ステップS402の予測処理により得られた予測画像を加算することにより、局所的に復号された復号画像を生成する。
ステップS409において、フレームメモリ419は、ステップS408の処理により得られた、局所的に復号された復号画像を記憶する。
ステップS410において、符号化部415は、ステップS405の処理により得られた量子化変換係数レベルlevelを符号化する。例えば、符号化部415は、画像に関する情報である量子化変換係数レベルlevelを、算術符号化等により符号化し、符号化データを生成する。また、このとき、符号化部415は、各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo)を符号化する。さらに、符号化部415は、量子化変換係数レベルlevelから残差情報RInfoを導出し、その残差情報RInfoを符号化する。
ステップS411において、符号化部415は、このように生成した各種情報の符号化データをまとめて、ビットストリームとして画像符号化装置400の外部に出力する。このビットストリームは、例えば、伝送路や記録媒体を介して復号側に伝送される。ステップS411の処理が終了すると、画像符号化処理が終了する。
<変換処理の流れ>
次に、図54のステップS404において実行される変換処理の流れの例を、図55のフローチャートを参照して説明する。変換処理が開始されると、スイッチ431は、ステップS421において、変換スキップフラグts_flagが2D_TS(2次元変換スキップを示す場合)であるか、あるいは変換量子化バイパスフラグtransquant_bypass_flagが1(真)であるか否かを判定する。変換スキップフラグts_flagが2D_TS、または、変換量子化バイパスフラグが1(真)であると判定された場合、変換処理が終了し、処理は図54に戻る。この場合、スイッチ431は、直交変換処理(プライマリ変換やセカンダリ変換)を省略し、入力された予測残差Dを、変換係数Coeffとして変換部413の外部へ出力する(量子化部414に供給する)。
また、図55のステップS421において、変換スキップフラグts_flagが2D_TSでない(2次元変換スキップでない)、かつ変換量子化バイパスフラグが0(偽)であると判定された場合、処理はステップS422に進む。この場合、スイッチ431は、入力された予測残差Dをプライマリ変換部432に供給する。
プライマリ変換部432は、入力された予測残差Dに対して、色信号識別子compIDで指定される色信号の適応プライマリ変換情報に基づいて、プライマリ変換を行い、プライマリ変換後の変換係数Coeff_Pを出力する。より具体的には、ステップS422において、プライマリ変換部432は、色信号識別子compIDが輝度であるか、色差であるかを判別する。色信号識別子compIDが色差を示すと判定された場合(compID != COMPONENT_Y)、処理はステップS423に進む。
ステップS423において、色差適応プライマリ変換情報導出部441は、色差適応プライマリ変換情報導出処理を実行し、色差変換ブロックに関する適応プライマリ変換フラグapt_flag[compID](compID=COMPONET_Cb or COMPONENT_Cr)と、該色差変換ブロックに対応する輝度変換ブロックに関するプライマリ変換識別子pt_idx[COMPONENT_Y]とに基づいて、該色差の変換ブロックに関するプライマリ変換識別子pt_idx[compID]を導出する。なお、この処理は、第1の実施の形態において説明した画像復号装置100(色差適応プライマリ変換情報導出部131)により実行される色差適応プライマリ変換情報導出処理(図15)と同様であるので、その説明を省略する。換言するに、図15のフローチャートを参照してした説明は、色差適応プライマリ変換情報導出部441が実行する色差適応プライマリ変換情報導出処理の説明に適用することもできる。
ステップS423の処理が終了すると、処理はステップS424に進む。また、ステップS422において、色信号識別子compIDが輝度を示すと判定された場合(compID==COMPONENT_Y)、処理はステップS424に進む。
ステップS424において、プライマリ変換選択部442は、プライマリ変換選択処理を実行して、予測モード情報PInfo、色信号識別子compID、色信号識別子compIDに対応する色信号の適応プライマリ変換フラグapt_flag[compID]、色信号識別子compIDに対応する色信号のプライマリ変換識別子pt_idx[compID]を参照して、色信号識別子compIDで指定される色信号のプライマリ水平変換の変換タイプTrTypeIdxH、およびプライマリ垂直変換の変換タイプTrTypeIdxVを導出し、それぞれ、プライマリ水平変換部443、プライマリ垂直変換部444へ出力する。
ステップS425において、プライマリ水平変換部443は、色信号識別子compIDで指定される変換ブロック毎に、該変換ブロックの予測残差Dに対して、プライマリ水平変換の変換タイプTrTypeIdxHと該変換ブロックの縦幅で定まるプライマリ水平変換Phorを実行し、その結果をプライマリ水平変換後の変換係数Coeff_Phorとして出力する。
ステップS426において、プライマリ垂直変換部444は、色信号識別子compIDで指定される変換ブロック毎に、該変換ブロックのプライマリ水平変換後の変換係数Coeff_Phorに対して、プライマリ垂直変換の変換タイプTrTypeIdxVと該変換ブロックの縦幅で定まるプライマリ垂直変換Pverを実行し、その結果をプライマリ変換後の変換係数Coeff_Pとして出力する。
ステップS427において、セカンダリ変換部433は、入力されたプライマリ変換係数Coeff_Pに対して、セカンダリ変換識別子st_idxに基づいて、セカンダリ変換を行い、変換係数Coeffを導出し出力する。ステップS427の処理が終了すると、変換処理が終了し、処理は図54に戻る。
<プライマリ変換選択処理の流れ>
次に、図55のステップS424において実行されるプライマリ変換選択処理の流れの例を、図56のフローチャートを参照して説明する。
プライマリ変換選択処理が開始されると、プライマリ変換選択部442は、ステップS431において、色信号識別子compIDに対応する色信号の適応プライマリ変換フラグapt_flag[compID]が1(真)であるか否かを判定する。該適応プライマリ変換フラグapt_flag[compID]が1(真)であると判定された場合、処理はステップS432に進む。
ステップS432において、プライマリ変換選択部442は、予測モード情報PInfoに基づいて、プライマリ垂直変換の変換セットTrSetV(プライマリ水平変換セット)、およびプライマリ水平変換の変換セットTrSetH(プライマリ垂直変換セット)を選択する。
ステップS433において、プライマリ変換選択部442は、色信号識別子compIDに対応する色信号のプライマリ変換識別子pt_idx[compID]から、プライマリ水平変換指定フラグpt_hor_flag、およびプライマリ垂直変換指定フラグpt_ver_flagを導出する。
ステップS434において、プライマリ変換選択部442は、プライマリ水平変換セットTrSetHおよびプライマリ水平変換指定フラグpt_hor_flagを参照して、プライマリ水平変換IPThorとして適用する直交変換の変換タイプTrTypeIdxHを選択する。
ステップS435において、プライマリ変換選択部442は、プライマリ垂直変換セットTrSetV、およびプライマリ垂直変換指定フラグpt_ver_flagを参照して、逆プライマリ垂直変換IPTverとして適用する直交変換の変換タイプTrTypeIdxVを選択する。ステップS435の処理が終了すると、プライマリ変換選択処理が終了し、処理は図55に戻る。
また、ステップS431において、適応プライマリ変換フラグapt_flag[compID]が0(偽)であると判定された場合、処理はステップS436に進む。ステップS436において、プライマリ変換選択部442は、プライマリ水平変換IPThorの変換タイプTrTypeIdxHとして、所定の直交変換を選択する(TrTypeIdxH = 所定値)。
また、ステップS437において、プライマリ変換選択部442は、プライマリ垂直変換IPTverの変換タイプTrTypeIdxVとして、所定の直交変換を選択する(TrTypeIdxV = 所定値)。ステップS437の処理が終了すると、プライマリ変換選択処理が終了し、処理は図56に戻る。
つまり、プライマリ変換部432は、色差の適応プライマリ変換フラグapt_flag[compID]の値に応じた方法で、逆プライマリ水平変換IPThorの変換タイプTrTypeIdxHと、逆プライマリ垂直変換IPTverの変換タイプTrTypeIdxVとを導出する。
<プライマリ変換情報符号化処理の流れ>
符号化部415は、変換部413により生成された適応プライマリ変換フラグapt_flagやプライマリ変換識別子pt_idxの符号化を行う。ただし、符号化部415は、輝度の適応プライマリ変換フラグapt_flagやプライマリ変換識別子pt_idxは、符号化してシグナリングさせ、色差の適応プライマリ変換フラグapt_flagやプライマリ変換識別子pt_idxは、符号化しない。
このような符号化を行うために符号化部415が実行するプライマリ変換情報符号化処理の流れの例を、図57のフローチャートを参照して説明する。プライマリ変換情報符号化処理が開始されると、符号化部415は、ステップS441において、処理対象が輝度であるか否かを判定する。輝度である(compID == COMPONENT_Y)と判定された場合、処理はステップS442に進む。ステップS442において、符号化部415は、輝度の適応プライマリ変換フラグapt_flag[COMPONENT_Y]を符号化する(シグナリングさせる)。また、ステップS443において、符号化部415は、輝度のプライマリ変換識別子pt_idx[COMPONENT_Y]を符号化する(シグナリングさせる)。ステップS443の処理が終了すると、プライマリ変換情報符号化処理が終了する。
なお、符号化部415は、ステップS441において、処理対象が色差であるか否かを判定する。色差である(compID != COMPONENT_Y)と判定された場合、ステップS442およびステップS443の処理は省略され、つまり、適応プライマリ変換フラグapt_flagやプライマリ変換識別子pt_idxをシグナリングせずに、プライマリ変換情報符号化処理を終了する。
以上のように各処理を実行することにより、色差の残差信号が輝度の残差信号と傾向が類似する場合において、輝度において選択された適応プライマリ変換を、色差の変換ブロックに適用することが可能となる。したがって、従来技術と比較して、色差の残差信号に対して、符号化効率の向上したプライマリ変換処理を行うことができる。また、輝度/色差毎に適応プライマリ変換フラグapt_flag、およびプライマリ変換識別子pt_idxを明示的に符号化する場合と比較して、色差に関する適応プライマリ変換情報の符号化をする必要がないため、エンコーダの処理量を削減することができる。
<色差適応プライマリ変換情報導出処理>
なお、色差適応プライマリ変換情報導出部441は、色差適応プライマリ変換情報導出部131と同様の構成を有し、同様の処理を行う。つまり、色差適応プライマリ変換情報導出部441は、色差適応プライマリ変換情報導出部131と同様に、色差適応プライマリ変換情報導出処理を実行することができる。したがって、画像符号化装置400は、図7の表のNo.#1の行のように、色差においても適応プライマリ変換を適用可能とし、さらに、常に、色差の適応プライマリ変換フラグapt_flagやプライマリ変換識別子pt_idxを、輝度の適応プライマリ変換フラグapt_flagやプライマリ変換識別子pt_idxから推定するようにすることができ、画像復号装置100の場合と同様の効果を得ることができる。
同様に、画像符号化装置400は、図7の表のNo.#2の行のように、色差においても適応プライマリ変換を適用可能とし、さらに、例えば、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測(CuPredMode == MODE_INTER)である場合、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]の値に輝度の適応プライマリ変換フラグapt_flag[Y]の値をセットし、その符号化ブロックの予測タイプがイントラ予測である場合、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]の値に0(偽)をセットすることができる。つまり、この場合も、画像復号装置100の場合と同様の効果を得ることができる。
同様に、画像符号化装置400は、図7の表のNo.#3の行のように、色差においても適応プライマリ変換を適用可能とし、さらに、例えば、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、または、輝度と色差とで予測モードが一致するイントラ予測である場合、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]の値に輝度の適応プライマリ変換フラグapt_flag[Y]の値をセットし、その符号化ブロックの予測タイプが輝度と色差とで予測モードが一致しないイントラ予測である場合、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]の値に0(偽)をセットすることができる。つまり、この場合も、画像復号装置100の場合と同様の効果を得ることができる。
同様に、画像符号化装置400は、図7の表のNo.#4の行のように、色差においても適応プライマリ変換を適用可能とし、さらに、例えば、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、または、予測モードがイントラブロックコピーのイントラ予測である場合、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]の値に輝度の適応プライマリ変換フラグapt_flag[Y]の値をセットし、その符号化ブロックの予測タイプが、予測モードがイントラブロックコピー(IntraBC, Intra Block Copy, 画面内動き補償とも称する)でないイントラ予測である場合、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]の値に0(偽)をセットすることができる。つまり、この場合も、画像復号装置100の場合と同様の効果を得ることができる。
同様に、画像符号化装置400は、図7の表のNo.#5の行のように、色差においても適応プライマリ変換を適用可能とし、さらに、例えば、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]を輝度の適応プライマリ変換フラグapt_flag[Y]に基づいて推定するかを示す色差適応プライマリ変換情報推定フラグchroma_apt_info_infer_flagが1(真)の場合、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]の値に輝度の適応プライマリ変換フラグapt_flag[Y]の値をセットし、色差適応プライマリ変換情報推定フラグchroma_apt_info_infer_flagが0(偽)の場合、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]の値に0(偽)をセットすることができる。つまり、この場合も、画像復号装置100の場合と同様の効果を得ることができる。
この色差適応プライマリ変換情報推定フラグchroma_apt_info_infer_flagを符号化する色差適応プライマリ変換情報推定フラグ符号化処理の流れの例を、図58のフローチャートを参照して説明する。
色差適応プライマリ変換情報推定フラグ符号化処理が開始されると、ステップS451において、符号化部415は、処理対象が色差であるか否かを判定する。色差であると判定された場合、処理はステップS452に進む。ステップS452において、符号化部415は、輝度の適応プライマリ変換フラグapt_flag[COMPONENT_Y]が真であるか否かを判定する。真であると判定された場合、処理はステップS453に進む。ステップS453において、符号化部415は、変換量子化バイパス有効フラグtransquant_bypass_enabled_flagが偽であるか否かを判定する。偽であると判定された場合、処理はステップS454に進む。ステップS454において、符号化部415は、色差の変換スキップフラグts_flagが偽であるか否かを判定する。色差の変換スキップフラグts_flagが偽であると判定された場合、処理はステップS455に進む。ステップS455において、符号化部415は、色差適応プライマリ変換情報推定フラグchroma_apt_info_infer_flagを符号化する。ステップS455の処理が終了すると、色差適応プライマリ変換情報推定フラグ符号化処理が終了し、処理は図54に戻る。
なお、図58の、ステップS451において、処理対象が輝度であると判定された場合、色差適応プライマリ変換情報推定フラグ符号化処理が終了し、処理は図54に戻る。また、ステップS452において、輝度の適応プライマリ変換フラグapt_flag[COMPONENT_Y]が偽であると判定された場合、色差適応プライマリ変換情報推定フラグ符号化処理が終了し、処理は図54に戻る。また、ステップS453において、変換量子化バイパス有効フラグtransquant_bypass_enabled_flagが真であると判定された場合、色差適応プライマリ変換情報推定フラグ符号化処理が終了し、処理は図54に戻る。また、ステップS454において、色差の変換スキップフラグts_flagが真であると判定された場合に、色差適応プライマリ変換情報推定フラグ符号化処理が終了し、処理は図54に戻る。
また、画像符号化装置400は、図7の表のNo.#6の行のように、色差においても適応プライマリ変換を適用可能とし、さらに、例えば、色差の処理対象の変換ブロックの短辺のサイズが所定の閾値以上の場合、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]の値に輝度の適応プライマリ変換フラグapt_flag[Y]の値をセットし、その変換ブロックの短辺のサイズがその閾値より小さい場合、色差の適応プライマリ変換フラグapt_flag[Cb/Cr]の値に0(偽)をセットすることができる。つまり、この場合も、画像復号装置100の場合と同様の効果を得ることができる。
同様に、画像符号化装置400は、図7の表のNo.#7の行のように、色差においても適応(逆)プライマリ変換を適用可能とし、さらに、例えば、色差の処理対象の変換ブロックの横幅のサイズが所定の閾値以下の場合、(逆)プライマリ水平変換の変換タイプを所定の変換タイプにセットし、その変換ブロックの横幅のサイズがその閾値よりも大きい場合、(逆)プライマリ水平変換の変換タイプを水平変換セットおよびプライマリ水平変換指定フラグに基づいてセットすることができる。さらに同様に、色差の処理対象の変換ブロックの縦幅のサイズが所定の閾値以下の場合、(逆)プライマリ垂直変換の変換タイプを所定の変換タイプにセットし、その変換ブロックの縦幅のサイズがその閾値よりも大きい場合、(逆)プライマリ垂直変換の変換タイプを垂直変換セットおよびプライマリ垂直変換指定フラグに基づいてセットすることもできる。つまり、この場合も、画像復号装置100の場合と同様の効果を得ることができる。
もちろん、画像符号化装置400の場合も、以上に説明した複数のケースを任意に組み合わせることもできる。また、上述した各ケースを、上述していない他のケースと組み合わせることもできる。つまり、この場合も、画像復号装置100の場合と同様の効果を得ることができる。
<6.第5の実施の形態>
<ts_flag>
復号の場合と同様に、(逆)直交変換に関する情報に、(逆)直交変換処理をスキップするかを示す変換スキップフラグts_flagが含まれるようにしてもよい。例えば、色差(Cb)の変換スキップフラグts_flag[Cb]と色差(Cr)の変換スキップフラグts_flag[Cr]とをそれぞれ、輝度の変換スキップフラグts_flag[Y]に基づいて導出することにより、色差(Cb/Cr)でシグナルされる該シンタックスの符号量に関するオーバーヘッドの増大も抑制することができる。
<基本例1>
例えば図27のNo.#1の行のように、常に、色差の変換スキップフラグts_flagを、輝度の変換スキップフラグts_flagから推定するようにする。例えば、色差の変換スキップフラグts_flag[compID]の値に、輝度の変換スキップフラグts_flag[COMPONENT_Y]の値をセットするようにしてもよい。
この場合、制御部411が変換スキップフラグ符号化処理を実行し、この変換スキップフラグts_flagの符号化を制御する。図59のフローチャートを参照して、この変換スキップフラグ符号化処理の流れの例を説明する。
変換スキップフラグ符号化処理が開始されると、図59のステップS461乃至ステップS464の各処理は、図29の変換スキップフラグ導出処理のステップS241乃至ステップS244の各処理と同様に実行される。
ステップS464において、処理対象が色差であると判定された場合(compID != COMPONENT_Y)、処理はステップS465に進む。ステップS465において、制御部411は、色差の変換スキップフラグts_flag[compID]の値に、輝度の変換スキップフラグts_flag[COMPONENT_Y]の値をセットする(ts_flag[compID] == ts_flag[COMPONENT_Y])。ステップS465の処理が終了すると、変換スキップフラグ符号化処理が終了する。つまり、この場合、色差の変換スキップフラグts_flag[compID]は、復号側においても同様に輝度の変換スキップフラグts_flag[COMPONENT_Y]から導出することができるので、シグナリングされない。
また、ステップS464において、処理対象が輝度であると判定された場合(compID == COMPONENT_Y)、処理はステップS466に進む。ステップS466において、制御部411は、輝度の変換スキップフラグts_flag[compID]に任意の値をセットする。そして、ステップS467において、制御部411は、その輝度の変換スキップフラグts_flag[compID]を符号化部415に供給し、符号化させる。ステップS467の処理が終了すると、変換スキップフラグ符号化処理が終了する。つまり、この場合、輝度の変換スキップフラグts_flag[compID]は、シグナリングされる(伝送される)。復号側においては、ビットストリームから抽出して復号することにより、この輝度の変換スキップフラグts_flag[compID]が得られる。
つまり、<基本例1>の場合、輝度の変換スキップフラグts_flagは全てシグナリングされ、色差の変換スキップフラグts_flagは全てシグナリングされない。このようにすることにより、色差の変換スキップフラグts_flagの伝送(符号化・復号)を省略することができるので、符号化効率の低減を抑制することができる。また、符号化や復号の負荷の増大も抑制することができる。
<変形例1>
また、例えば図27のNo.#2の行のように、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、色差の変換スキップフラグts_flag[compID]の値に輝度の変換スキップフラグts_flag[COMPONENT_Y]の値をセットし、その符号化ブロックの予測タイプがイントラ予測である場合、色差の変換スキップフラグts_flag[compID]がシグナリングされる(すなわち、色差の変換スキップフラグts_flag[compID]は、符号化データから復号して得る)ようにしてもよい。
この場合の、変換スキップフラグ符号化処理の流れの例を、図60のフローチャートを参照して説明する。ステップS471乃至ステップS475の各処理は、図31のステップS251乃至ステップS255の各処理と同様に実行される。
つまり、ステップS474において処理対象が色差であると判定され、かつ、ステップS475において、インター予測であると判定された場合、処理はステップS476に進む。ステップS476において、制御部411は、色差の変換スキップフラグts_flag[compID]の値に、輝度の変換スキップフラグts_flag[COMPONENT_Y]の値をセットする(ts_flag[compID] == ts_flag[COMPONENT_Y])。ステップS476の処理が終了すると、変換スキップフラグ符号化処理が終了する。つまり、この場合、色差であり、かつ、インター予測の変換ブロックの変換スキップフラグts_flag[compID]は、復号側においても同様に輝度の変換スキップフラグts_flag[COMPONENT_Y]から導出することができるので、シグナリングされない。
これに対して、ステップS474において処理対象が輝度であると判定された場合(compID == COMPONENT_Y)、または、ステップS475においてイントラ予測であると判定された場合、処理はステップS477に進む。ステップS477において、制御部411は、その変換スキップフラグts_flag[compID]に任意の値をセットする。そして、ステップS478において、制御部411は、その変換スキップフラグts_flag[compID]を符号化部415に供給し、符号化させる。ステップS478の処理が終了すると、変換スキップフラグ符号化処理が終了する。つまり、この場合、輝度またはイントラ予測の変換ブロックの変換スキップフラグts_flag[compID]は、シグナリングされる(伝送される)。復号側においては、ビットストリームから抽出して復号することにより、これらの変換スキップフラグts_flag[compID]を得ることができる。
つまり、<変形例1>の場合、輝度の変換スキップフラグts_flagと、予測モードがイントラ予測の変換ブロックの変換スキップフラグts_flagとがシグナリングされ、色差であり、かつ、予測モードがインター予測の変換スキップフラグts_flagがシグナリングされない。このようにすることにより、残差信号の傾向が類似するインター予測モードの場合のみ、色差の変換スキップフラグts_flagの伝送(符号化・復号)を省略することができるので、符号化効率の低減を抑制することができる。また、符号化や復号の負荷の増大も抑制することができる。
<変形例2>
また、例えば図27のNo.#3の行のように、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、または、輝度と色差とで予測モードが一致するイントラ予測である場合、色差の変換スキップフラグts_flag[compID]の値に輝度の変換スキップフラグts_flag[COMPONENT_Y]の値をセットし、その符号化ブロックの予測タイプが輝度と色差とで予測モードが一致しないイントラ予測である場合、色差の変換スキップフラグts_flag[compID]がシグナリングされる(すなわち、色差の変換スキップフラグts_flag[compID]は、符号化データから復号して得る)ようにしてもよい。
この場合の、変換スキップフラグ符号化処理の流れの例を、図61のフローチャートを参照して説明する。ステップS481乃至ステップS486の各処理は、図33のステップS261乃至ステップS266の各処理と同様に実行される。
つまり、ステップS484において処理対象が色差であると判定され、かつ、ステップS485においてインター予測であると判定されるか、若しくは、ステップS485においてイントラ予測であると判定され、かつ、ステップS486において輝度と色差とで予測モードが一致すると判定された場合、処理はステップS487に進む。ステップS487において、制御部411は、色差の変換スキップフラグts_flag[compID]の値に、輝度の変換スキップフラグts_flag[COMPONENT_Y]の値をセットする(ts_flag[compID] == ts_flag[COMPONENT_Y])。ステップS487の処理が終了すると、変換スキップフラグ符号化処理が終了する。つまり、この場合、<変形例1>の条件に加え、輝度と色差とで予測モードが一致するイントラ予測の場合も、残差信号の傾向が類似するので、変換スキップフラグts_flag[compID]をシグナリングしないようにする。
これに対して、ステップS484において処理対象が輝度であると判定された場合(compID == COMPONENT_Y)、または、ステップS486において、輝度と色差とで予測モードが一致しないイントラ予測であると判定された場合、処理はステップS488に進む。ステップS488において、制御部411は、その変換スキップフラグts_flag[compID]に任意の値をセットする。そして、ステップS489において、制御部411は、その変換スキップフラグts_flag[compID]を符号化部415に供給し、符号化させる。ステップS489の処理が終了すると、変換スキップフラグ符号化処理が終了する。つまり、この場合、輝度の変換スキップフラグts_flag[compID]と、輝度と色差とで予測モードが一致しないイントラ予測の変換ブロックの変換スキップフラグts_flag[compID]とがシグナリングされる(伝送される)。復号側においては、ビットストリームから抽出して復号することにより、これらの変換スキップフラグts_flag[compID]を得ることができる。
つまり、<変形例2>の場合、輝度の変換スキップフラグts_flagと、輝度と色差とで予測モードが一致しないイントラ予測の変換ブロックの変換スキップフラグts_flagとがシグナリングされ、それ以外の変換スキップフラグts_flagがシグナリングされない。このようにすることにより、残差信号の傾向が類似するインター予測モードの場合のみ、色差の変換スキップフラグts_flagの伝送(符号化・復号)を省略することができるので、符号化効率の低減を抑制することができる。また、符号化や復号の負荷の増大も抑制することができる。
<変形例3>
また、例えば図27のNo.#4の行のように、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、または、予測モードがイントラブロックコピーのイントラ予測である場合、色差の変換スキップフラグts_flag[compID]の値に輝度の変換スキップフラグts_flag[COMPONENT_Y]の値をセットし、その符号化ブロックの予測タイプが輝度と色差とで予測モードが一致しないイントラ予測である場合、色差の変換スキップフラグts_flag[compID]がシグナリングされる(すなわち、色差の変換スキップフラグts_flag[compID]は、符号化データから復号して得る)ようにしてもよい。
この場合の、変換スキップフラグ符号化処理の流れの例を、図62のフローチャートを参照して説明する。ステップS491乃至ステップS496の各処理は、図35のステップS271乃至ステップS276の各処理と同様に実行される。
つまり、ステップS494において処理対象が色差であると判定され、かつ、ステップS495においてインター予測であると判定されるか、若しくは、ステップS495およびステップS496により、イントラブロックコピーのイントラ予測と判定された場合、処理はステップS497に進む。ステップS497において、制御部411は、色差の変換スキップフラグts_flag[compID]の値に、輝度の変換スキップフラグts_flag[COMPONENT_Y]の値をセットする(ts_flag[compID] == ts_flag[COMPONENT_Y])。ステップS497の処理が終了すると、変換スキップフラグ符号化処理が終了する。つまり、この場合、<変形例1>の条件に加え、イントラブロックコピーのイントラ予測の場合も、残差信号の傾向が類似するので、変換スキップフラグts_flag[compID]をシグナリングしないようにする。
これに対して、ステップS494において処理対象が輝度であると判定された場合(compID == COMPONENT_Y)、または、ステップS495およびステップS496により、イントラブロックコピーでないイントラ予測であると判定された場合、処理はステップS498に進む。ステップS498において、制御部411は、その変換スキップフラグts_flag[compID]に任意の値をセットする。そして、ステップS499において、制御部411は、その変換スキップフラグts_flag[compID]を符号化部415に供給し、符号化させる。ステップS489の処理が終了すると、変換スキップフラグ符号化処理が終了する。つまり、この場合、輝度の変換スキップフラグts_flag[compID]と、イントラブロックコピーでないイントラ予測の変換ブロックの変換スキップフラグts_flag[compID]とがシグナリングされる(伝送される)。復号側においては、ビットストリームから抽出して復号することにより、これらの変換スキップフラグts_flag[compID]を得ることができる。
つまり、<変形例3>の場合、輝度の変換スキップフラグts_flagと、イントラブロックコピーでないイントラ予測の変換ブロックの変換スキップフラグts_flagとがシグナリングされ、それ以外の変換スキップフラグts_flagがシグナリングされない。このようにすることにより、残差信号の傾向が類似するインター予測モードの場合のみ、色差の変換スキップフラグts_flagの伝送(符号化・復号)を省略することができるので、符号化効率の低減を抑制することができる。また、符号化や復号の負荷の増大も抑制することができる。
<変形例4>
また、例えば図27のNo.#5の行のように、色差変換スキップ情報推定フラグchroma_ts_info_infer_flagが1(真)の場合、色差の変換スキップフラグts_flag[copmID]の値に輝度の変換スキップフラグts_flag[COMPONENT_Y]の値をセットし、色差変換スキップ情報推定フラグchroma_ts_info_infer_flagが0(偽)の場合、色差の変換スキップフラグts_flag[compID]がシグナリングされる(すなわち、色差の変換スキップフラグts_flag[compID]は、符号化データから復号して得る)ようにしてもよい。
この場合の、変換スキップフラグ符号化処理の流れの例を、図63のフローチャートを参照して説明する。ステップS501乃至ステップS504の各処理は、図38のステップS281乃至ステップS284の各処理と同様に実行される。
つまり、ステップS504において、色差変換スキップ情報推定フラグchroma_ts_info_infer_flagが真であると判定された場合、処理はステップS505に進む。ステップS505において、制御部411は、色差の変換スキップフラグts_flag[compID]の値に、輝度の変換スキップフラグts_flag[COMPONENT_Y]の値をセットする(ts_flag[compID] == ts_flag[COMPONENT_Y])。ステップS4505の処理が終了すると、変換スキップフラグ符号化処理が終了する。
これに対して、ステップS504において色差変換スキップ情報推定フラグchroma_ts_info_infer_flagが偽であると判定された場合、処理はステップS506に進む。ステップS506において、制御部411は、その変換スキップフラグts_flag[compID]に任意の値をセットする。そして、ステップS507において、制御部411は、その変換スキップフラグts_flag[compID]を符号化部415に供給し、符号化させる。ステップS507の処理が終了すると、変換スキップフラグ符号化処理が終了する。
つまり、<変形例4>の場合、色差変換スキップ情報推定フラグchroma_ts_info_infer_flagによって、変換スキップフラグts_flag[compID]をシグナリングするか否かが明示的に制御される。したがって、容易に、十分に大きな効果が得られる場合のみ輝度の変換スキップフラグの値を利用させるようにすることができるので、符号化効率の低減をより抑制することができる。また、符号化や復号の負荷の増大も抑制することができる。
<7.第6の実施の形態>
<st_idx>
復号の場合と同様に、(逆)直交変換に関する情報に、どの(逆)セカンダリ変換を適用するかを示すセカンダリ変換識別子st_idxが含まれるようにしてもよい。例えば、色差(CbおよびCr共通)のセカンダリ変換識別子chroma_st_idxを、輝度のセカンダリ変換識別子st_idx[Y]に基づいて導出することにより、色差(Cb/Cr)でシグナルされる該シンタックスの符号量に関するオーバーヘッドの増大も抑制することができる。
<基本例1>
例えば図39のNo.#1の行のように、常に、色差のセカンダリ変換識別子st_idxを、輝度のセカンダリ変換識別子st_idxから推定するようにする。例えば、色差のセカンダリ変換識別子chroma_st_idxの値に、輝度のセカンダリ変換識別子st_idxの値をセットするようにしてもよい。
この場合、制御部411が色差用セカンダリ変換識別子符号化処理を実行し、この色差用のセカンダリ変換識別子chroma_st_idxの符号化を制御する。図64のフローチャートを参照して、この色差用セカンダリ変換識別子符号化処理の流れの例を説明する。
色差用セカンダリ変換識別子符号化処理が開始されると、図64のステップS511乃至ステップS514の各処理は、図42の色差用セカンダリ変換識別子符号化処理のステップS291乃至ステップS294の各処理と同様に実行される。
このようにすることにより、色差のセカンダリ変換識別子chroma_ts_flagの伝送(符号化・復号)を省略することができるので、符号化効率の低減を抑制することができる。また、符号化や復号の負荷の増大も抑制することができる。
<変形例1>
図39のNo.#2の行を参照して説明したように、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、色差のセカンダリ変換識別子chroma_st_idxの値に輝度のセカンダリ変換識別子st_idxの値をセットし、その符号化ブロックの予測タイプがイントラ予測である場合、色差のセカンダリ変換識別子chroma_st_idxがシグナリングされる(すなわち、色差のセカンダリ変換識別子chroma_st_idxは、符号化データから復号して得る)ようにしてもよい。
この場合、制御部411が色差用セカンダリ変換識別子符号化処理を実行し、この色差のセカンダリ変換識別子chroma_st_idxの符号化を制御する。図65のフローチャートを参照して、この色差用セカンダリ変換識別子符号化処理の流れの例を説明する。
色差用セカンダリ変換識別子符号化処理が開始されると、図65のステップS521乃至ステップS524の各処理は、図44の色差用セカンダリ変換識別子符号化処理のステップS301乃至ステップS304の各処理と同様に実行される。
つまり、ステップS524においてインター予測であると判定された場合、処理はステップS525に進む。ステップS525において、制御部411は、色差のセカンダリ変換識別子chroma_st_idxの値に、輝度のセカンダリ変換識別子st_idxの値をセットする(chroma_st_idx == st_idx)。ステップS525の処理が終了すると、色差用セカンダリ変換識別子符号化処理が終了する。つまり、この場合、色差であり、かつ、インター予測の変換ブロックのセカンダリ変換識別子chroma_st_idxは、復号側においても同様に輝度のセカンダリ変換識別子st_idxから導出することができるので、シグナリングされない。
これに対して、ステップS524においてイントラ予測であると判定された場合、処理はステップS526に進む。ステップS526において、制御部411は、その色差のセカンダリ変換識別子chroma_st_idxに任意の値をセットする。そして、ステップS527において、制御部411は、その色差のセカンダリ変換識別子chroma_st_idxを符号化部415に供給し、符号化させる。ステップS527の処理が終了すると、色差用セカンダリ変換識別子符号化処理が終了する。つまり、この場合、イントラ予測の変換ブロックの色差のセカンダリ変換識別子chroma_st_idxは、シグナリングされる(伝送される)。復号側においては、ビットストリームから抽出して復号することにより、これらの色差のセカンダリ変換識別子chroma_st_idxを得ることができる。
このようにすることにより、残差信号の傾向が類似するインター予測モードの場合のみ、色差のセカンダリ変換識別子chroma_st_idxの伝送(符号化・復号)を省略することができるので、符号化効率の低減を抑制することができる。また、符号化や復号の負荷の増大も抑制することができる。
<変形例2>
また、例えば図39のNo.#3の行のように、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、または、輝度と色差とで予測モードが一致するイントラ予測である場合、色差のセカンダリ変換識別子chroma_st_idxの値に輝度のセカンダリ変換識別子st_idxの値をセットする。また、その符号化ブロックの予測タイプが輝度と色差とで予測モードが一致しないイントラ予測である場合、色差のセカンダリ変換識別子chroma_st_idxがシグナリングされる(すなわち、色差のセカンダリ変換識別子chroma_st_idxは、符号化データから復号して得る)ようにしてもよい。
この場合の、色差用セカンダリ変換識別子符号化処理の流れの例を、図66のフローチャートを参照して説明する。ステップS531乃至ステップS535の各処理は、図46のステップS311乃至ステップS315の各処理と同様に実行される。
つまり、ステップS534においてインター予測であると判定されるか、または、ステップS534およびS535により輝度と色差とで予測モードが一致するイントラ予測であると判定された場合、処理はステップS536に進む。ステップS536において、制御部411は、色差のセカンダリ変換識別子chroma_st_idxの値に、輝度のセカンダリ変換識別子st_idxの値をセットする(chroma_st_idx == st_idx)。ステップS536の処理が終了すると、色差用セカンダリ変換識別子符号化処理が終了する。つまり、この場合、<変形例1>の条件に加え、輝度と色差とで予測モードが一致するイントラ予測の場合も、残差信号の傾向が類似するので、色差のセカンダリ変換識別子chroma_st_idxをシグナリングしないようにする。
これに対して、ステップS535において輝度と色差とで予測モードが一致しないイントラ予測であると判定された場合(compID != COMPONENT_Y)、処理はステップS537に進む。ステップS537において、制御部411は、その色差のセカンダリ変換識別子chroma_st_idxに任意の値をセットする。そして、ステップS538において、制御部411は、その色差のセカンダリ変換識別子chroma_st_idxを符号化部415に供給し、符号化させる。ステップS538の処理が終了すると、色差用セカンダリ変換識別子符号化処理が終了する。
このようにすることにより、残差信号の傾向が類似する予測モードの場合のみ、色差のセカンダリ変換識別子chroma_st_idxの伝送(符号化・復号)を省略することができるので、符号化効率の低減を抑制することができる。また、符号化や復号の負荷の増大も抑制することができる。
<変形例3>
また、例えば図39のNo.#4の行のように、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、または、予測モードがイントラブロックコピーのイントラ予測である場合、色差のセカンダリ変換識別子chroma_st_idxの値に輝度のセカンダリ変換識別子st_idxの値をセットする。また、その予測モードがイントラブロックコピーでないイントラ予測である場合、色差のセカンダリ変換識別子chroma_st_idxがシグナリングされる(すなわち、色差のセカンダリ変換識別子chroma_st_idxは、符号化データから復号して得る)ようにしてもよい。
この場合の、色差用セカンダリ変換識別子符号化処理の流れの例を、図67のフローチャートを参照して説明する。ステップS541乃至ステップS545の各処理は、図48のステップS321乃至ステップS325の各処理と同様に実行される。
つまり、ステップS544においてインター予測であると判定されるか、または、ステップS544およびS545により予測モードがイントラブロックコピーのイントラ予測であると判定された場合、処理はステップS546に進む。ステップS546において、制御部411は、色差のセカンダリ変換識別子chroma_st_idxの値に、輝度のセカンダリ変換識別子st_idxの値をセットする(chroma_st_idx == st_idx)。ステップS546の処理が終了すると、色差用セカンダリ変換識別子符号化処理が終了する。つまり、この場合、<変形例1>の条件に加え、予測モードがイントラブロックコピーのイントラ予測の場合も、残差信号の傾向が類似するので、色差のセカンダリ変換識別子chroma_st_idxをシグナリングしないようにする。
これに対して、ステップS545において予測モードがイントラブロックコピーでないイントラ予測であると判定された場合、処理はステップS547に進む。ステップS547において、制御部411は、その色差のセカンダリ変換識別子chroma_st_idxに任意の値をセットする。そして、ステップS548において、制御部411は、その色差のセカンダリ変換識別子chroma_st_idxを符号化部415に供給し、符号化させる。ステップS548の処理が終了すると、色差用セカンダリ変換識別子符号化処理が終了する。
このようにすることにより、残差信号の傾向が類似する予測モードの場合のみ、色差のセカンダリ変換識別子chroma_st_idxの伝送(符号化・復号)を省略することができるので、符号化効率の低減を抑制することができる。また、符号化や復号の負荷の増大も抑制することができる。
<変形例5>
また、例えば図39のNo.#5の行のように、色差セカンダリ変換識別子推定フラグchroma_st_idx_infer_flagが1(真)の場合、色差のセカンダリ変換識別子chroma_st_idxの値に輝度のセカンダリ変換識別子st_idxの値をセットし、色差セカンダリ変換識別子推定フラグchroma_st_idx_infer_flagが0(偽)の場合、色差のセカンダリ変換識別子chroma_st_idxがシグナリングされる(すなわち、色差のセカンダリ変換識別子chroma_st_idxは、符号化データから復号して得る)ようにしてもよい。
この場合の、色差セカンダリ変換識別子推定フラグ符号化処理の流れの例を、図68のフローチャートを参照して説明する。ステップS551乃至ステップS553の各処理は、図50のステップS331乃至ステップS333の各処理と同様に実行される。
つまり、ステップS554において、制御部411は、色差セカンダリ変換識別子推定フラグchroma_st_idx_infer_flagをセットし、ステップS555において、その色差セカンダリ変換識別子推定フラグchroma_st_idx_infer_flagが符号化部415に供給され、符号化される。
ステップS556において、制御部411は、色差セカンダリ変換識別子推定フラグchroma_st_idx_infer_flagの値が真であるか否かを判定する。色差セカンダリ変換識別子推定フラグchroma_st_idx_infer_flagの値が真であると判定された場合、処理はステップS557に進む。ステップS557において、制御部411は、色差のセカンダリ変換識別子chroma_st_idxに、輝度用のセカンダリ変換識別子st_idxを印加する。
また、ステップS556において、色差セカンダリ変換識別子推定フラグchroma_st_idx_infer_flagの値が偽であると判定された場合、処理はステップS558に進む。ステップS558において、制御部411は、色差のセカンダリ変換識別子chroma_st_idxをセットする。また、ステップS559において、制御部411は、それを符号化部415に供給し、符号化させる。ステップS559の処理が終了すると、変換スキップフラグ符号化処理が終了する。
つまり、<変形例5>の場合、色差セカンダリ変換識別子推定フラグによって、色差のセカンダリ変換識別子chroma_st_idxをシグナリングするか否かが明示的に制御される。したがって、より効果的な方法をより容易かつ確実に選択することができる。したがって、符号化効率の低減をより抑制することができる。また、符号化や復号の負荷の増大も抑制することができる。
<8.その他>
<情報のデータ単位>
以上において説明した画像に関する情報や画像の符号化・復号に関する情報が設定される(または対象とするデータの)データ単位は、それぞれ任意であり、上述した例に限定されない。例えば、これらの情報が、それぞれ、TU(Transform Unit)、TB(Transform Block)、PU(Prediction Unit)、PB(Prediction Block)、CU(Coding Unit)、LCU(Largest Coding Unit)、サブブロック、ブロック、タイル、スライス、ピクチャ、シーケンス、またはコンポーネント毎に設定されるようにしてもよいし、それらのデータ単位のデータを対象とするようにしてもよい。もちろん、このデータ単位は、情報毎に設定される。つまり、全ての情報が同一のデータ単位毎に設定される(または対象とする)ようにしなくてもよい。なお、これらの情報の格納場所は任意であり、上述したデータ単位のヘッダやパラメータセット等に格納されるようにしてもよい。また、複数個所に格納されるようにしてもよい。
<制御情報>
以上の各実施の形態において説明した本技術に関する制御情報を符号化側から復号側に伝送するようにしてもよい。例えば、上述した本技術を適用することを許可(または禁止)するか否かを制御する制御情報(例えばenabled_flag)を伝送するようにしてもよい。また、例えば、上述した本技術を適用することを許可(または禁止)するブロックサイズの上限若しくは下限、またはその両方を指定する制御情報を伝送するようにしてもよい。
<符号化・復号>
本技術は、プライマリ変換およびセカンダリ変換(逆セカンダリ変および逆プライマリ変換)を行う任意の画像符号化・復号に適用することができる。つまり、変換(逆変換)、量子化(逆量子化)、符号化(復号)、予測等の仕様は任意であり、上述した例に限定されない。例えば、変換(逆変換)において、(逆)プライマリ変換および(逆)セカンダリ変換以外の(逆)変換(すなわち3以上の(逆)変換)が行われるようにしてもよい。また、符号化(復号)は、可逆な方式であってもよいし、非可逆な方式であってもよい。さらに、量子化(逆量子化)や予測等は省略するようにしてもよい。また、フィルタ処理等の上述していない処理が行われるようにしてもよい。
<本技術の適用分野>
本技術を適用したシステム、装置、処理部等は、例えば、交通、医療、防犯、農業、畜産業、鉱業、美容、工場、家電、気象、自然監視等、任意の分野に利用することができる。
例えば、本技術は、鑑賞の用に供される画像を伝送するシステムやデバイスにも適用することができる。また、例えば、本技術は、交通の用に供されるシステムやデバイスにも適用することができる。さらに、例えば、本技術は、セキュリティの用に供されるシステムやデバイスにも適用することができる。また、例えば、本技術は、スポーツの用に供されるシステムやデバイスにも適用することができる。さらに、例えば、本技術は、農業の用に供されるシステムやデバイスにも適用することができる。また、例えば、本技術は、畜産業の用に供されるシステムやデバイスにも適用することができる。さらに、本技術は、例えば火山、森林、海洋等の自然の状態を監視するシステムやデバイスにも適用することができる。また、本技術は、例えば天気、気温、湿度、風速、日照時間等を観測する気象観測システムや気象観測装置に適用することができる。さらに、本技術は、例えば鳥類、魚類、ハ虫類、両生類、哺乳類、昆虫、植物等の野生生物の生態を観測するシステムやデバイス等にも適用することができる。
<多視点画像符号化・復号システムへの適用>
上述した一連の処理は、複数の視点(ビュー(view))の画像を含む多視点画像の符号化・復号を行う多視点画像符号化・復号システムに適用することができる。その場合、各視点(ビュー(view))の符号化・復号において、本技術を適用するようにすればよい。
<階層画像符号化・復号システムへの適用>
また、上述した一連の処理は、所定のパラメータについてスケーラビリティ(scalability)機能を有するように複数レイヤ化(階層化)された階層画像の符号化・復号を行う階層画像符号化(スケーラブル符号化)・復号システムに適用することができる。その場合、各階層(レイヤ)の符号化・復号において、本技術を適用するようにすればよい。
<コンピュータ>
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
図69は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
図69に示されるコンピュータ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に、あらかじめインストールしておくこともできる。
<本技術の応用>
上述した実施形態に係る画像符号化装置400や画像復号装置100は、例えば、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、およびセルラー通信による端末への配信などにおける送信機や受信機、または、光ディスク、磁気ディスクおよびフラッシュメモリなどの媒体に画像を記録する記録装置や、これら記憶媒体から画像を再生する再生装置などの、様々な電子機器に応用され得る。
<第1の応用例:テレビジョン受像機>
図70は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置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が、上述した画像復号装置100の機能を有するようにしてもよい。つまり、デコーダ904が、符号化データを、以上の各実施の形態において説明した方法で復号するようにしてもよい。このようにすることにより、テレビジョン装置900は、図1乃至図68を参照して上述した各実施の形態と同様の効果を得ることができる。
また、このように構成されたテレビジョン装置900において、映像信号処理部905が、例えば、デコーダ904から供給される画像データを符号化し、得られた符号化データを、外部インタフェース部909を介してテレビジョン装置900の外部に出力させることができるようにしてもよい。そして、その映像信号処理部905が、上述した画像符号化装置400の機能を有するようにしてもよい。つまり、映像信号処理部905が、デコーダ904から供給される画像データを、以上の各実施の形態において説明した方法で符号化するようにしてもよい。このようにすることにより、テレビジョン装置900は、図1乃至図68を参照して上述した各実施の形態と同様の効果を得ることができる。
<第2の応用例:携帯電話機>
図71は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機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が、上述した画像符号化装置400の機能を有するようにしてもよい。つまり、画像処理部927が、画像データを、以上の各実施の形態において説明した方法で符号化するようにしてもよい。このようにすることにより、携帯電話機920は、図1乃至図68を参照して上述した各実施の形態と同様の効果を得ることができる。
また、このように構成された携帯電話機920において、例えば画像処理部927が、上述した画像復号装置100の機能を有するようにしてもよい。つまり、画像処理部927が、符号化データを、以上の各実施の形態において説明した方法で復号するようにしてもよい。このようにすることにより、携帯電話機920は、図1乃至図68を参照して上述した各実施の形態と同様の効果を得ることができる。
<第3の応用例:記録再生装置>
図72は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置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から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをHDD部944またはディスクドライブ945へ出力する。また、セレクタ946は、映像および音声の再生時には、HDD部944またはディスクドライブ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が、上述した画像符号化装置400の機能を有するようにしてもよい。つまり、エンコーダ943が、画像データを、以上の各実施の形態において説明方法で符号化するようにしてもよい。このようにすることにより、記録再生装置940は、図1乃至図68を参照して上述した各実施の形態と同様の効果を得ることができる。
また、このように構成された記録再生装置940において、例えばデコーダ947が、上述した画像復号装置100の機能を有するようにしてもよい。つまり、デコーダ947が、符号化データを、以上の各実施の形態において説明した方法で復号するようにしてもよい。このようにすることにより、記録再生装置940は、図1乃至図68を参照して上述した各実施の形態と同様の効果を得ることができる。
<第4の応用例:撮像装置>
図73は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置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が、上述した画像符号化装置400の機能を有するようにしてもよい。つまり、画像処理部964が、画像データを、以上の各実施の形態において説明した方法で符号化するようにしてもよい。このようにすることにより、撮像装置960は、図1乃至図68を参照して上述した各実施の形態と同様の効果を得ることができる。
また、このように構成された撮像装置960において、例えば画像処理部964が、上述した画像復号装置100の機能を有するようにしてもよい。つまり、画像処理部964が、符号化データを、以上の各実施の形態において説明した方法で復号するようにしてもよい。このようにすることにより、撮像装置960は、図1乃至図68を参照して上述した各実施の形態と同様の効果を得ることができる。
<第5の応用例:ビデオセット>
また、本技術は、任意の装置またはシステムを構成する装置に搭載するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等(すなわち、装置の一部の構成)として実施することもできる。図74は、本技術を適用したビデオセットの概略的な構成の一例を示している。
近年、電子機器の多機能化が進んでおり、その開発や製造において、その一部の構成を販売や提供等として実施する場合、1機能を有する構成として実施を行う場合だけでなく、関連する機能を有する複数の構成を組み合わせ、複数の機能を有する1セットとして実施を行う場合も多く見られるようになってきた。
図74に示されるビデオセット1300は、このような多機能化された構成であり、画像の符号化や復号(いずれか一方でもよいし、両方でも良い)に関する機能を有するデバイスに、その機能に関連するその他の機能を有するデバイスを組み合わせたものである。
図74に示されるように、ビデオセット1300は、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、およびフロントエンドモジュール1314等のモジュール群と、コネクティビティ1321、カメラ1322、およびセンサ1323等の関連する機能を有するデバイスとを有する。
モジュールは、互いに関連するいくつかの部品的機能をまとめ、まとまりのある機能を持った部品としたものである。具体的な物理的構成は任意であるが、例えば、それぞれ機能を有する複数のプロセッサ、抵抗やコンデンサ等の電子回路素子、その他のデバイス等を配線基板等に配置して一体化したものが考えられる。また、モジュールに他のモジュールやプロセッサ等を組み合わせて新たなモジュールとすることも考えられる。
図74の例の場合、ビデオモジュール1311は、画像処理に関する機能を有する構成を組み合わせたものであり、アプリケーションプロセッサ、ビデオプロセッサ、ブロードバンドモデム1333、およびRFモジュール1334を有する。
プロセッサは、所定の機能を有する構成をSoC(System On a Chip)により半導体チップに集積したものであり、例えばシステムLSI(Large Scale Integration)等と称されるものもある。この所定の機能を有する構成は、論理回路(ハードウエア構成)であってもよいし、CPU、ROM、RAM等と、それらを用いて実行されるプログラム(ソフトウエア構成)であってもよいし、その両方を組み合わせたものであってもよい。例えば、プロセッサが、論理回路とCPU、ROM、RAM等とを有し、機能の一部を論理回路(ハードウエア構成)により実現し、その他の機能をCPUにおいて実行されるプログラム(ソフトウエア構成)により実現するようにしてもよい。
図74のアプリケーションプロセッサ1331は、画像処理に関するアプリケーションを実行するプロセッサである。このアプリケーションプロセッサ1331において実行されるアプリケーションは、所定の機能を実現するために、演算処理を行うだけでなく、例えばビデオプロセッサ1332等、ビデオモジュール1311内外の構成を必要に応じて制御することもできる。
ビデオプロセッサ1332は、画像の符号化・復号(その一方または両方)に関する機能を有するプロセッサである。
ブロードバンドモデム1333は、インターネットや公衆電話回線網等の広帯域の回線を介して行われる有線若しくは無線(またはその両方)の広帯域通信により送信するデータ(デジタル信号)をデジタル変調する等してアナログ信号に変換したり、その広帯域通信により受信したアナログ信号を復調してデータ(デジタル信号)に変換したりする。ブロードバンドモデム1333は、例えば、ビデオプロセッサ1332が処理する画像データ、画像データが符号化されたストリーム、アプリケーションプログラム、設定データ等、任意の情報を処理する。
RFモジュール1334は、アンテナを介して送受信されるRF(Radio Frequency)信号に対して、周波数変換、変復調、増幅、フィルタ処理等を行うモジュールである。例えば、RFモジュール1334は、ブロードバンドモデム1333により生成されたベースバンド信号に対して周波数変換等を行ってRF信号を生成する。また、例えば、RFモジュール1334は、フロントエンドモジュール1314を介して受信されたRF信号に対して周波数変換等を行ってベースバンド信号を生成する。
なお、図74において点線1341に示されるように、アプリケーションプロセッサ1331とビデオプロセッサ1332を、一体化し、1つのプロセッサとして構成されるようにしてもよい。
外部メモリ1312は、ビデオモジュール1311の外部に設けられた、ビデオモジュール1311により利用される記憶デバイスを有するモジュールである。この外部メモリ1312の記憶デバイスは、どのような物理構成により実現するようにしてもよいが、一般的にフレーム単位の画像データのような大容量のデータの格納に利用されることが多いので、例えばDRAM(Dynamic Random Access Memory)のような比較的安価で大容量の半導体メモリにより実現するのが望ましい。
パワーマネージメントモジュール1313は、ビデオモジュール1311(ビデオモジュール1311内の各構成)への電力供給を管理し、制御する。
フロントエンドモジュール1314は、RFモジュール1334に対してフロントエンド機能(アンテナ側の送受信端の回路)を提供するモジュールである。図74に示されるように、フロントエンドモジュール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は、本技術を適用したセットとして実施することができる。
<ビデオプロセッサの構成例>
図75は、本技術を適用したビデオプロセッサ1332(図74)の概略的な構成の一例を示している。
図75の例の場合、ビデオプロセッサ1332は、ビデオ信号およびオーディオ信号の入力を受けてこれらを所定の方式で符号化する機能と、符号化されたビデオデータおよびオーディオデータを復号し、ビデオ信号およびオーディオ信号を再生出力する機能とを有する。
図75に示されるように、ビデオプロセッサ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(図74)等から入力されたビデオ信号を取得し、デジタル画像データに変換する。第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が、上述した画像符号化装置400の機能若しくは画像復号装置100の機能またはその両方を有するようにしてもよい。このようにすることにより、ビデオプロセッサ1332は、図1乃至図68を参照して上述した各実施の形態と同様の効果を得ることができる。
なお、エンコード・デコードエンジン1407において、本技術(すなわち、画像符号化装置400の機能若しくは画像復号装置100の機能またはその両方)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
<ビデオプロセッサの他の構成例>
図76は、本技術を適用したビデオプロセッサ1332の概略的な構成の他の例を示している。図76の例の場合、ビデオプロセッサ1332は、ビデオデータを所定の方式で符号化・復号する機能を有する。
より具体的には、図76に示されるように、ビデオプロセッサ1332は、制御部1511、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、および内部メモリ1515を有する。また、ビデオプロセッサ1332は、コーデックエンジン1516、メモリインタフェース1517、多重化・逆多重化部(MUX DMUX)1518、ネットワークインタフェース1519、およびビデオインタフェース1520を有する。
制御部1511は、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516等、ビデオプロセッサ1332内の各処理部の動作を制御する。
図76に示されるように、制御部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は、複数の符号化・復号方式のコーデック機能を備え、その中から選択されたもので画像データの符号化または符号化データの復号を行うようにしてもよい。
図76に示される例において、コーデックエンジン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が、上述した画像符号化装置400の機能若しくは画像復号装置100の機能またはその両方を有するようにすればよい。このようにすることにより、ビデオプロセッサ1332は、図1乃至図68を参照して上述した各実施の形態と同様の効果を得ることができる。
なお、コーデックエンジン1516において、本技術(すなわち、画像符号化装置400の機能)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
以上にビデオプロセッサ1332の構成を2例示したが、ビデオプロセッサ1332の構成は任意であり、上述した2例以外のものであってもよい。また、このビデオプロセッサ1332は、1つの半導体チップとして構成されるようにしてもよいが、複数の半導体チップとして構成されるようにしてもよい。例えば、複数の半導体を積層する3次元積層LSIとしてもよい。また、複数のLSIにより実現されるようにしてもよい。
<装置への適用例>
ビデオセット1300は、画像データを処理する各種装置に組み込むことができる。例えば、ビデオセット1300は、テレビジョン装置900(図70)、携帯電話機920(図71)、記録再生装置940(図72)、撮像装置960(図73)等に組み込むことができる。ビデオセット1300を組み込むことにより、その装置は、図1乃至図68を参照して上述した各実施の形態と同様の効果を得ることができる。
なお、上述したビデオセット1300の各構成の一部であっても、ビデオプロセッサ1332を含むものであれば、本技術を適用した構成として実施することができる。例えば、ビデオプロセッサ1332のみを本技術を適用したビデオプロセッサとして実施することができる。また、例えば、上述したように点線1341により示されるプロセッサやビデオモジュール1311等を、本技術を適用したプロセッサやモジュール等として実施することができる。さらに、例えば、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、およびフロントエンドモジュール1314を組み合わせ、本技術を適用したビデオユニット1361として実施することもできる。いずれの構成の場合であっても、図1乃至図68を参照して上述した各実施の形態と同様の効果を得ることができる。
つまり、ビデオプロセッサ1332を含むものであればどのような構成であっても、ビデオセット1300の場合と同様に、画像データを処理する各種装置に組み込むことができる。例えば、ビデオプロセッサ1332、点線1341により示されるプロセッサ、ビデオモジュール1311、または、ビデオユニット1361を、テレビジョン装置900(図70)、携帯電話機920(図71)、記録再生装置940(図72)、撮像装置960(図73)等に組み込むことができる。そして、本技術を適用したいずれかの構成を組み込むことにより、その装置は、ビデオセット1300の場合と同様に、図1乃至図68を参照して上述した各実施の形態と同様の効果を得ることができる。
<第6の応用例:ネットワークシステム>
また、本技術は、複数の装置により構成されるネットワークシステムにも適用することもできる。図77は、本技術を適用したネットワークシステムの概略的な構成の一例を示している。
図77に示されるネットワークシステム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が、それぞれ、上述した画像符号化装置400や画像復号装置100の機能を有するようにしてもよい。このようにすることにより、画像データを授受する端末(コンピュータ1611乃至IoTデバイス1614)やクラウドサービス1601は、図1乃至図68を参照して上述した各実施の形態と同様の効果を得ることができる。
<補足>
なお、本明細書において「フラグ」とは、複数の状態を識別するための情報であり、真(1)または偽(0)の2状態を識別する際に用いる情報だけでなく、3以上の状態を識別することが可能な情報も含まれる。したがって、この「フラグ」が取り得る値は、例えば1/0の2値であってもよいし、3値以上であってもよい。すなわち、この「フラグ」を構成するbit数は任意であり、1bitでも複数bitでもよい。また、識別情報(フラグも含む)は、その識別情報をビットストリームに含める形だけでなく、ある基準となる情報に対する識別情報の差分情報をビットストリームに含める形も想定されるため、本明細書においては、「フラグ」や「識別情報」は、その情報だけではなく、基準となる差分情報も包含する。
また、符号化データ(ビットストリーム)に関する各種情報(メタデータ等)は、符号化データに関連づけられていれば、どのような形態で伝送または記録されるようにしてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る(リンクさせ得る)ようにすることを意味する。つまり、互いに関連付けられたデータは、1つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の記録媒体(または同一の記録媒体の別の記録エリア)に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、画像とその画像に対応する情報とが、複数フレーム、1フレーム、またはフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
また、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを1つのデータにまとめるといった、複数の物を1つにまとめることを意味し、上述の「関連付ける」の1つの方法を意味する。
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
また、例えば、本技術は、装置またはシステムを構成するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等(すなわち、装置の一部の構成)として実施することもできる。
なお、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、および、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
また、例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
また、例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
また、例えば、上述したプログラムは、任意の装置において実行することができる。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
また、例えば、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
なお、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
なお、本明細書において複数説明した本技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
なお、本技術は以下のような構成も取ることができる。
(1) 輝度の逆直交変換に関する情報に基づいて導出された色差の逆直交変換に関する情報を用いて、色差の前記逆直交変換を行う逆直交変換部
を備える画像処理装置。
(2) 前記逆直交変換に関する情報は、処理対象の変換ブロックにおいて、複数の異なる逆直交変換の中からいずれかを適応的に選択して逆プライマリ変換として用いる適応逆プライマリ変換を適用するかを示す適応プライマリ変換フラグを含む
(1)に記載の画像処理装置。
(3) 色差の前記適応プライマリ変換フラグの値は、輝度の前記適応プライマリ変換フラグの値にセットされる
(2)に記載の画像処理装置。
(4) 前記逆直交変換に関する情報は、垂直方向および水平方向の逆プライマリ変換にどの逆プライマリ変換を適用するかを示すプライマリ変換識別子を含む
(3)に記載の画像処理装置。
(5) 色差の前記プライマリ変換識別子の値は、色差の前記適応プライマリ変換フラグが真の場合、輝度の前記プライマリ変換識別子の値にセットされ、色差の前記適応プライマリ変換フラグが偽の場合、所定値にセットされる
(4)に記載の画像処理装置。
(6) 前記逆直交変換部は、前記逆直交変換として、逆プライマリ変換を行う
(5)に記載の画像処理装置。
(7) 前記逆直交変換部は、前記逆直交変換として、水平方向の前記逆プライマリ変換である逆プライマリ水平変換と、垂直方向の前記逆プライマリ変換である逆プライマリ垂直変換を行う
(6)に記載の画像処理装置。
(8) 色差の前記逆プライマリ水平変換の変換タイプ、および、色差の前記逆プライマリ垂直変換の変換タイプは、それぞれ、色差の前記適応プライマリ変換フラグの値に応じた方法で導出される
(7)に記載の画像処理装置。
(9) 前記色差の前記適応プライマリ変換フラグが真の場合、
予測モード情報に基づいて、逆プライマリ水平変換の変換セットと逆プライマリ垂直変換の変換セットとが選択され、
前記色差のプライマリ変換識別子からプライマリ水平変換指定フラグとプライマリ垂直変換フラグとが導出され、
前記プライマリ水平変換セットと前記プライマリ水平変換指定フラグとに基づいて、色差の前記逆プライマリ水平変換の変換タイプが選択され、
前記プライマリ垂直変換セットと前記プライマリ垂直変換指定フラグとに基づいて、色差の前記逆プライマリ垂直変換の変換タイプが選択される
(8)に記載の画像処理装置。
(10) 前記色差の前記適応プライマリ変換フラグが偽の場合、
色差の前記逆プライマリ水平変換の変換タイプとして所定の変換タイプが選択され、
色差の前記逆プライマリ垂直変換の変換タイプとして所定の変換タイプが選択される
(8)または(9)に記載の画像処理装置。
(11) 色差の前記適応プライマリ変換フラグの値は、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、輝度の前記適応プライマリ変換フラグの値にセットされ、前記符号化ブロックの予測タイプがイントラ予測である場合、偽にセットされる
(2)乃至(10)のいずれかに記載の画像処理装置。
(12) 色差の前記適応プライマリ変換フラグの値は、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測であるか、または、予測モードがイントラブロックコピーのイントラ予測である場合、輝度の前記適応プライマリ変換フラグの値にセットされ、前記符号化ブロックの予測タイプが、予測モードがイントラブロックコピーでないイントラ予測である場合、偽にセットされる
(2)乃至(11)のいずれかに記載の画像処理装置。
(13) 色差の前記適応プライマリ変換フラグの値は、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測であるか、または、輝度と色差とで予測モードが一致するイントラ予測である場合、輝度の前記適応プライマリ変換フラグの値にセットされ、前記符号化ブロックの予測タイプが、輝度と色差とで予測モードが一致しないイントラ予測である場合、偽にセットされる
(2)乃至(12)のいずれかに記載の画像処理装置。
(14) 色差の前記適応プライマリ変換フラグの値は、色差の前記適応プライマリ変換フラグを輝度の前記適応プライマリ変換フラグに基づいて推定するかを示す色差適応プライマリ変換情報推定フラグが真の場合、輝度の前記適応プライマリ変換フラグの値にセットされ、前記色差適応プライマリ変換情報推定フラグが偽の場合、偽にセットされる
(2)乃至(13)のいずれかに記載の画像処理装置。
(15) 前記色差適応プライマリ変換情報推定フラグは、処理対象コンポーネントが色差であり、輝度の前記適応プライマリ変換フラグが真であり、変換量子化バイパスフラグが偽であり、かつ、変換スキップフラグが偽の場合、ビットストリームから復号され、その他の場合、値が偽にセットされる
(14)に記載の画像処理装置。
(16) 色差の前記適応プライマリ変換フラグの値は、色差の処理対象の変換ブロックの短辺のサイズが所定の閾値以上の場合、輝度の前記適応プライマリ変換フラグの値にセットされ、前記変換ブロックの短辺のサイズが前記閾値未満の場合、偽にセットされる
(2)乃至(15)のいずれかに記載の画像処理装置。
(17) 前記逆直交変換部は、前記逆直交変換として、水平方向の逆プライマリ変換である逆プライマリ水平変換と、垂直方向の逆プライマリ変換である逆プライマリ垂直変換を行うように構成され、
前記逆プライマリ水平変換の変換タイプは、色差の処理対象の変換ブロックの横幅のサイズが所定の閾値以下の場合、所定の変換タイプにセットされ、前記変換ブロックの横幅のサイズが前記閾値よりも大きい場合、水平変換セットおよびプライマリ水平変換指定フラグに基づいてセットされ、
前記逆プライマリ垂直変換の変換タイプは、色差の処理対象の変換ブロックの縦幅のサイズが所定の閾値以下の場合、所定の変換タイプにセットされ、前記変換ブロックの縦幅のサイズが前記閾値よりも大きい場合、垂直変換セットおよびプライマリ垂直変換指定フラグに基づいてセットされる
(1)乃至(16)のいずれかに記載の画像処理装置。
(18) 前記逆直交変換に関する情報は、逆直交変換処理をスキップするかを示す変換スキップフラグを含む
(1)乃至(17)のいずれかに記載の画像処理装置。
(19) 色差の前記変換スキップフラグの値は、輝度の前記変換スキップフラグの値にセットされる
(18)に記載の画像処理装置。
(20) 色差の前記変換スキップフラグの値は、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、輝度の前記変換スキップフラグの値にセットされ、前記符号化ブロックの予測タイプがイントラ予測である場合、ビットストリームが復号されて得られる色差の前記変換スキップフラグの値にセットされる
(18)または(19)に記載の画像処理装置。
(21) 色差の前記変換スキップフラグの値は、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測であるか、または、輝度と色差とで予測モードが一致するイントラ予測である場合、輝度の前記変換スキップフラグの値にセットされ、前記符号化ブロックの予測タイプが、輝度と色差とで予測モードが一致しないイントラ予測である場合、ビットストリームが復号されて得られる色差の前記変換スキップフラグの値にセットされる
(18)乃至(20)のいずれかに記載の画像処理装置。
(22) 色差の前記変換スキップフラグの値は、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測であるか、または、予測モードがイントラブロックコピーのイントラ予測である場合、輝度の前記変換スキップフラグの値にセットされ、前記符号化ブロックの予測タイプが、予測モードがイントラブロックコピーでないイントラ予測である場合、ビットストリームが復号されて得られる色差の前記変換スキップフラグの値にセットされる
(18)乃至(21)のいずれかに記載の画像処理装置。
(23) 色差の前記変換スキップフラグの値は、色差の前記変換スキップフラグを輝度の前記変換スキップフラグに基づいて推定するかを示す色差変換スキップ情報推定フラグが真の場合、輝度の前記変換スキップフラグの値にセットされ、前記色差変換スキップ情報推定フラグが偽の場合、ビットストリームが復号されて得られる色差の前記変換スキップフラグの値にセットされる
(18)乃至(22)のいずれかに記載の画像処理装置。
(24) 前記逆直交変換に関する情報は、どの逆セカンダリ変換を適用するかを示すセカンダリ変換識別子を含む
(1)乃至(23)のいずれかに記載の画像処理装置。
(25) 色差の前記セカンダリ変換識別子の値は、輝度の前記セカンダリ変換識別子の値にセットされる
(24)に記載の画像処理装置。
(26) 色差の前記セカンダリ変換識別子の値は、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、輝度の前記セカンダリ変換識別子の値にセットされ、前記符号化ブロックの予測タイプがイントラ予測である場合、ビットストリームが復号されて得られる色差の前記セカンダリ変換識別子の値にセットされる
(24)または(25)に記載の画像処理装置。
(27) 色差の前記セカンダリ変換識別子の値は、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測であるか、または、輝度と色差とで予測モードが一致するイントラ予測である場合、輝度の前記セカンダリ変換識別子の値にセットされ、前記符号化ブロックの予測タイプが、輝度と色差とで予測モードが一致しないイントラ予測である場合、ビットストリームが復号されて得られる色差の前記セカンダリ変換識別子の値にセットされる
(24)乃至(26)のいずれかに記載の画像処理装置。
(28) 色差の前記セカンダリ変換識別子の値は、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測であるか、または、予測モードがイントラブロックコピーのイントラ予測である場合、輝度の前記セカンダリ変換識別子の値にセットされ、前記符号化ブロックの予測タイプが、予測モードがイントラブロックコピーでないイントラ予測である場合、ビットストリームが復号されて得られる色差の前記セカンダリ変換識別子の値にセットされる
(24)乃至(27)のいずれかに記載の画像処理装置。
(29) 色差の前記セカンダリ変換識別子の値は、色差の前記セカンダリ変換識別子を輝度の前記セカンダリ変換識別子に基づいて推定するかを示す色差セカンダリ変換識別情報推定フラグが真の場合、輝度の前記セカンダリ変換識別子の値にセットされ、前記色差セカンダリ変換識別情報推定フラグが偽の場合、ビットストリームが復号されて得られる色差の前記セカンダリ変換識別子の値にセットされる
(24)乃至(28)のいずれかに記載の画像処理装置。
(30) 輝度の逆直交変換に関する情報に基づいて導出された色差の逆直交変換に関する情報を用いて、色差の前記逆直交変換を行う
画像処理方法。
(31) 輝度の直交変換に関する情報に基づいて導出された色差の直交変換に関する情報を用いて、色差の前記直交変換を行う直交変換部
を備える画像処理装置。
(32) 前記直交変換に関する情報は、処理対象の変換ブロックにおいて、複数の異なる直交変換の中からいずれかを適応的に選択してプライマリ変換として用いる適応プライマリ変換を適用するかを示す適応プライマリ変換フラグを含む
(31)に記載の画像処理装置。
(33) 色差の前記適応プライマリ変換フラグの値は、輝度の前記適応プライマリ変換フラグの値にセットされる
(32)に記載の画像処理装置。
(34) 前記直交変換に関する情報は、垂直方向および水平方向のプライマリ変換にどのプライマリ変換を適用するかを示すプライマリ変換識別子を含む
(33)に記載の画像処理装置。
(35) 色差の前記プライマリ変換識別子の値は、色差の前記適応プライマリ変換フラグが真の場合、輝度の前記プライマリ変換識別子の値にセットされ、色差の前記適応プライマリ変換フラグが偽の場合、所定値にセットされる
(34)に記載の画像処理装置。
(36) 前記直交変換部は、前記直交変換として、プライマリ変換を行う
(35)に記載の画像処理装置。
(37) 前記直交変換部は、前記直交変換として、水平方向の前記プライマリ変換であるプライマリ水平変換と、垂直方向の前記プライマリ変換であるプライマリ垂直変換を行う
(36)に記載の画像処理装置。
(38) 色差の前記プライマリ水平変換の変換タイプ、および、色差の前記プライマリ垂直変換の変換タイプは、それぞれ、色差の前記適応プライマリ変換フラグの値に応じた方法で導出される
(37)に記載の画像処理装置。
(39) 前記色差の前記適応プライマリ変換フラグが真の場合、
予測モード情報に基づいて、プライマリ水平変換の変換セットとプライマリ垂直変換の変換セットとが選択され、
前記色差のプライマリ変換識別子からプライマリ水平変換指定フラグとプライマリ垂直変換フラグとが導出され、
前記プライマリ水平変換セットと前記プライマリ水平変換指定フラグとに基づいて、色差の前記プライマリ水平変換の変換タイプが選択され、
前記プライマリ垂直変換セットと前記プライマリ垂直変換指定フラグとに基づいて、色差の前記プライマリ垂直変換の変換タイプが選択される
(38)に記載の画像処理装置。
(40) 前記色差の前記適応プライマリ変換フラグが偽の場合、
色差の前記プライマリ水平変換の変換タイプとして所定の変換タイプが選択され、
色差の前記プライマリ垂直変換の変換タイプとして所定の変換タイプが選択される
(38)または(39)に記載の画像処理装置。
(41) 色差の前記適応プライマリ変換フラグの値は、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、輝度の前記適応プライマリ変換フラグの値にセットされ、前記符号化ブロックの予測タイプがイントラ予測である場合、偽にセットされる
(32)乃至(40)のいずれかに記載の画像処理装置。
(42) 色差の前記適応プライマリ変換フラグの値は、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測であるか、または、予測モードがイントラブロックコピーのイントラ予測である場合、輝度の前記適応プライマリ変換フラグの値にセットされ、前記符号化ブロックの予測タイプが、予測モードがイントラブロックコピーでないイントラ予測である場合、偽にセットされる
(32)乃至(41)のいずれかに記載の画像処理装置。
(43) 色差の前記適応プライマリ変換フラグの値は、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測であるか、または、輝度と色差とで予測モードが一致するイントラ予測である場合、輝度の前記適応プライマリ変換フラグの値にセットされ、前記符号化ブロックの予測タイプが、輝度と色差とで予測モードが一致しないイントラ予測である場合、偽にセットされる
(32)乃至(42)のいずれかに記載の画像処理装置。
(44) 色差の前記適応プライマリ変換フラグの値は、色差の前記適応プライマリ変換フラグを輝度の前記適応プライマリ変換フラグに基づいて推定するかを示す色差適応プライマリ変換情報推定フラグが真の場合、輝度の前記適応プライマリ変換フラグの値にセットされ、前記色差適応プライマリ変換情報推定フラグが偽の場合、偽にセットされる
(32)乃至(43)のいずれかに記載の画像処理装置。
(45) 処理対象コンポーネントが色差であり、輝度の前記適応プライマリ変換フラグが真であり、変換量子化バイパスフラグが偽であり、かつ、変換スキップフラグが偽の場合、前記色差適応プライマリ変換情報推定フラグは符号化される
(44)に記載の画像処理装置。
(46) 色差の前記適応プライマリ変換フラグの値は、色差の処理対象の変換ブロックの短辺のサイズが所定の閾値以上の場合、輝度の前記適応プライマリ変換フラグの値にセットされ、前記変換ブロックの短辺のサイズが前記閾値未満の場合、偽にセットされる
(32)乃至(45)のいずれかに記載の画像処理装置。
(47) 前記直交変換部は、前記直交変換として、水平方向のプライマリ変換であるプライマリ水平変換と、垂直方向のプライマリ変換であるプライマリ垂直変換を行うように構成され、
前記プライマリ水平変換の変換タイプは、色差の処理対象の変換ブロックの横幅のサイズが所定の閾値以下の場合、所定の変換タイプにセットされ、前記変換ブロックの横幅のサイズが前記閾値よりも大きい場合、水平変換セットおよびプライマリ水平変換指定フラグに基づいてセットされ、
前記プライマリ垂直変換の変換タイプは、色差の処理対象の変換ブロックの縦幅のサイズが所定の閾値以下の場合、所定の変換タイプにセットされ、前記変換ブロックの縦幅のサイズが前記閾値よりも大きい場合、垂直変換セットおよびプライマリ垂直変換指定フラグに基づいてセットされる
(31)乃至(46)のいずれかに記載の画像処理装置。
(48) 前記直交変換に関する情報は、直交変換処理をスキップするかを示す変換スキップフラグを含む
(31)乃至(47)のいずれかに記載の画像処理装置。
(49) 色差の前記変換スキップフラグの値は、輝度の前記変換スキップフラグの値にセットされる
(48)に記載の画像処理装置。
(50) 色差の前記変換スキップフラグの値は、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、輝度の前記変換スキップフラグの値にセットされ、前記符号化ブロックの予測タイプがイントラ予測である場合、任意の値にセットされ、かつ、符号化される
(48)または(49)に記載の画像処理装置。
(51) 色差の前記変換スキップフラグの値は、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測であるか、または、輝度と色差とで予測モードが一致するイントラ予測である場合、輝度の前記変換スキップフラグの値にセットされ、前記符号化ブロックの予測タイプが、輝度と色差とで予測モードが一致しないイントラ予測である場合、任意の値にセットされ、かつ、符号化される
(48)乃至(50)のいずれかに記載の画像処理装置。
(52) 色差の前記変換スキップフラグの値は、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測であるか、または、予測モードがイントラブロックコピーのイントラ予測である場合、輝度の前記変換スキップフラグの値にセットされ、前記符号化ブロックの予測タイプが、予測モードがイントラブロックコピーでないイントラ予測である場合、任意の値にセットされ、かつ、符号化される
(48)乃至(51)のいずれかに記載の画像処理装置。
(53) 色差の前記変換スキップフラグの値は、色差の前記変換スキップフラグを輝度の前記変換スキップフラグに基づいて推定するかを示す色差変換スキップ情報推定フラグが真の場合、輝度の前記変換スキップフラグの値にセットされ、前記色差変換スキップ情報推定フラグが偽の場合、任意の値にセットされ、かつ、符号化される
(48)乃至(52)のいずれかに記載の画像処理装置。
(54) 前記直交変換に関する情報は、どのセカンダリ変換を適用するかを示すセカンダリ変換識別子を含む
(31)乃至(53)のいずれかに記載の画像処理装置。
(55) 色差の前記セカンダリ変換識別子の値は、輝度の前記セカンダリ変換識別子の値にセットされる
(54)に記載の画像処理装置。
(56) 色差の前記セカンダリ変換識別子の値は、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測である場合、輝度の前記セカンダリ変換識別子の値にセットされ、前記符号化ブロックの予測タイプがイントラ予測である場合、任意の値にセットされ、かつ、符号化される
(54)または(55)に記載の画像処理装置。
(57) 色差の前記セカンダリ変換識別子の値は、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測であるか、または、輝度と色差とで予測モードが一致するイントラ予測である場合、輝度の前記セカンダリ変換識別子の値にセットされ、前記符号化ブロックの予測タイプが、輝度と色差とで予測モードが一致しないイントラ予測である場合、任意の値にセットされ、かつ、符号化される
(54)乃至(56)のいずれかに記載の画像処理装置。
(58) 色差の前記セカンダリ変換識別子の値は、処理対象の変換ブロックが属する符号化ブロックの予測タイプがインター予測であるか、または、予測モードがイントラブロックコピーのイントラ予測である場合、輝度の前記セカンダリ変換識別子の値にセットされ、前記符号化ブロックの予測タイプが、予測モードがイントラブロックコピーでないイントラ予測である場合、任意の値にセットされ、かつ、符号化される
(54)乃至(57)のいずれかに記載の画像処理装置。
(59) 色差の前記セカンダリ変換識別子の値は、色差の前記セカンダリ変換識別子を輝度の前記セカンダリ変換識別子に基づいて推定するかを示す色差セカンダリ変換識別情報推定フラグが真の場合、輝度の前記セカンダリ変換識別子の値にセットされ、前記色差セカンダリ変換識別情報推定フラグが偽の場合、任意の値にセットされ、かつ、符号化される
(54)乃至(58)のいずれかに記載の画像処理装置。
(60) 輝度の直交変換に関する情報に基づいて導出された色差の直交変換に関する情報を用いて、色差の前記直交変換を行う
画像処理方法。