以下、図面を参照しながら本発明の実施形態に係る画像符号化装置及び画像復号装置について説明する。本発明の実施形態に係る画像符号化装置及び画像復号装置は、MPEG(Moving Picture Experts Group)に代表される動画像の符号化及び復号を行う。なお、図面の記載において、構成が同一又は類似の部分については同一又は類似の符号を付している。
<1.画像符号化装置の構成>
図1は、実施形態に係る画像符号化装置1Aの構成を示す図である。図1に示すように、画像符号化装置1Aは、ブロック分割部100と、減算部101と、変換部102aと、量子化部102bと、切替部102cと、エントロピー符号化部103Aと、逆量子化部104aと、逆変換部104bと、切替部104cと、合成部105と、イントラ予測部106と、ループフィルタ107と、フレームメモリ108と、動き補償予測部109と、切替部110と、評価部111とを備える。
ブロック分割部100は、フレーム(或いはピクチャ)単位の入力画像をブロック状の小領域に分割し、画像ブロックを減算部101(及び動き補償予測部109)に出力する。画像ブロックのサイズは、例えば32×32画素、16×16画素、8×8画素、又は4×4画素等である。但し、画像ブロックの形状は正方形に限定されるものではなく、長方形や台形や三角形やL字等の形状であってもよい。画像ブロックは、画像符号化装置1Aが符号化を行う単位及び画像復号装置2A(図2参照)が復号を行う単位であり、かかる画像ブロックを符号化対象ブロックという。かかる画像ブロックとは、符号化ユニット(CU:Coding Unit)や符号化ブロック(CB:Coding Block)ともいう。
減算部101は、ブロック分割部100から入力された符号化対象ブロックと、符号化対象ブロックに対応する予測画像(予測画像ブロック)との画素単位の差分を表す予測残差を算出する。具体的には、減算部101は、符号化対象ブロックの各画素値から予測画像の各画素値を減算することにより予測残差を算出し、算出した予測残差を変換部102aに出力する。なお、予測画像は、後述するイントラ予測部106又は動き補償予測部109から切替部110を介して減算部101に入力される。
変換部102a、量子化部102b、及び切替部103cは、ブロック単位で直交変換処理及び量子化処理を行う変換・量子化部102を構成する。
変換部102aは、減算部101から入力された予測残差に対して直交変換することにより周波数成分ごとに直交変換係数を算出し、算出した直交変換係数を量子化部102bに出力する。直交変換には、例えば、離散コサイン変換(DCT:Discrete Cosine Transform)や離散サイン変換(DST:Discrete Sine Transform)、カルーネンレーブ変換(KLT: Karhunen‐Loeve Transform)等を用いてもよい。かかる直交変換により、画素領域の残差信号は周波数領域に変換される。なお、一般的に、直交変換により画素領域の残差信号が低域側にエネルギーが集中する。
なお、直交変換の演算に無理数や浮動小数を用いると、符号化装置や復号装置の演算方法や精度により装置間で演算結果に微細な差が生じる場合がある。この差を避けるために、直交変換基底を整数や有理数で模擬した変換を用いても良い。このような変換は直交性を持たない場合があるが、本実施例では直交性を持たない変換についても直交変換の用語を用い、逆変換についても、直交性を持たない逆変換を逆直交変換の用語を用いる。
切替部102cは、量子化部102bの入力を、変換部102aの出力と、減算部101の出力との間で切替える。通常、切替部102cは変換部102aの出力である直交変換係数を選択し、後述する変換スキップ符号化対象ブロックの場合は減算部101の出力である予測残差を選択する。したがって、変換スキップ符号化対象ブロックの場合は、予測残差と直交変換係数とを同一の信号とみなすことができる。また、変換スキップ符号化対象ブロックの場合は、量子化予測残差と量子化直交変換係数とを同一の信号とみなすことができる。
量子化部102bは、変換部102aから切替部102cを介して入力された直交変換係数を量子化パラメータ(Qp)及び量子化行列を用いて量子化し、量子化された直交変換係数(量子化直交変換係数)を生成する。量子化パラメータ(Qp)は、ブロック内の各直交変換係数に対して共通して適用されるパラメータであって、量子化の粗さを定めるパラメータである。量子化行列は、各直交変換係数を量子化する際の量子化値を要素とする行列である。量子化部102bは、生成した量子化直交変換係数をエントロピー符号化部103A及び逆量子化部104aに出力する。
エントロピー符号化部103Aは、量子化部102bから入力された量子化直交変換係数に対してエントロピー符号化し、かかるエントロピー符号化のデータ圧縮により符号化データ(ビットストリーム)を生成し、符号化データを画像符号化装置1Aの外部に出力する。エントロピー符号化には、ハフマン符号やCABAC(Context-based Adaptive Binary Arithmetic Coding;コンテキスト適応型2値算術符号)等を用いることができる。
エントロピー符号化は、2次元に配列された量子化直交変換係数を所定のスキャン順で読み出して1次元の量子化直交変換係数列に変換するシリアライズという処理を含み、1次元の量子化直交変換係数列の先頭の量子化直交変換係数から順に符号化する。直交変換により低域の周波数にエネルギーが集中し、量子化により高域におけるエネルギー(量子化直交変換係数の値)がゼロに収束することになるため、低域から高域のスキャン順に量子化直交変換係数を読み出し、スキャン順の最後の有意係数に対して終了フラグを付与することにより、有意係数のみを効率的に符号化している。
なお、エントロピー符号化部103Aには、イントラ予測部106及び動き補償予測部109から予測に関する情報が入力され、ループフィルタ107からフィルタ処理に関する情報が入力される。エントロピー符号化部103Aは、これらの情報のエントロピー符号化も行う。また、エントロピー符号化部103Aは、符号化対象ブロックに変換スキップモードが適用される場合、当該符号化対象ブロックに変換スキップモードが適用される旨の変換スキップフラグを符号化データに含める。
逆量子化部104a、逆変換部104b、及び切替部104cは、ブロック単位で逆量子化処理及び逆直交変換処理を行う逆量子化・逆変換部104を構成する。
逆量子化部104aは、量子化部102bが行う量子化処理に対応する逆量子化処理を行う。具体的には、逆量子化部104aは、量子化部102bから入力された量子化直交変換係数を、量子化パラメータ(Qp)及び量子化行列を用いて逆量子化することにより、直交変換係数を復元し、復元した直交変換係数(復元直交変換係数)を逆変換部104bに出力する。
切替部104cは、逆量子化・逆変換部104の出力を、逆変換部104bの出力と、逆量子化部104aの出力との間で切替える。通常は逆変換部104bの出力である復元直交変換係数を選択し、後述する変換スキップ符号化対象ブロックの場合は逆量子化部104aの出力である復元予測残差を選択する。したがって、変換スキップ符号化対象ブロックの場合は、復元予測残差と復元直交変換係数とを同一の信号とみなすことができる。また、変換スキップ符号化対象ブロックの場合は、量子化直交変換係数と量子化予測誤差とを同一の信号とみなすことができる。
逆変換部104bは、変換部102aが行う直交変換処理に対応する逆直交変換処理を行う。例えば、変換部102aが離散コサイン変換を行った場合には、逆変換部104bは逆離散コサイン変換を行う。逆変換部104bは、逆量子化部104aから入力された復元直交変換係数に対して逆直交変換を行って予測残差を復元し、復元した予測残差である復元予測残差を合成部105に出力する。
合成部105は、逆変換部104bから切替部104cを介して入力された復元予測残差を、切替部110から入力された予測画像と画素単位で合成する。合成部105は、復元予測残差の各画素値と予測画像の各画素値を加算して符号化対象ブロックを再構成し、再構成した符号化対象ブロックである再構成ブロックをイントラ予測部106及びループフィルタ107に出力する。
イントラ予測部106は、合成部105から入力された再構成ブロックを用いてイントラ予測を行ってイントラ予測画像を生成し、イントラ予測画像を切替部110に出力する。また、イントラ予測部106は、選択したイントラ予測モードの情報等をエントロピー符号化部103Aに出力する。
ループフィルタ107は、合成部105から入力された再構成ブロックに対して、後処理としてのフィルタ処理を行い、フィルタ処理後の再構成ブロックをフレームメモリ108に出力する。また、ループフィルタ107は、フィルタ処理に関する情報をエントロピー符号化部103Aに出力する。フィルタ処理には、デブロッキングフィルタ処理とサンプルアダプティブオフセット処理とが含まれる。
フレームメモリ108は、ループフィルタ107から入力された再構成ブロックをフレーム単位で復号済み画像として記憶する。
動き補償予測部109は、フレームメモリ108に記憶された1又は複数の再構成ブロック(復号済み画像)を参照画像として用いるインター予測を行う。具体的には、動き補償予測部109は、ブロックマッチングなどの手法により動きベクトルを算出し、動きベクトルに基づいて動き補償予測画像を生成し、動き補償予測画像を切替部110に出力する。また、動き補償予測部109は、動きベクトルに関する情報をエントロピー符号化部103Aに出力する。
切替部110は、イントラ予測部106から入力されたイントラ予測画像と、動き補償予測部109から入力された動き補償予測画像とを切替え、予測画像を減算部101及び合成部105に出力する。
一方、符号化対象ブロックの直交変換処理をスキップする変換スキップモードにおいて、ブロック分割部100が出力する符号化対象ブロックは、減算部101において予測残差に変換された後、直交変換されずに量子化される。具体的には、切替部102cが減算部101の出力を選択し、減算部101が出力する予測残差は、変換部102aにおける直交変換をスキップして、量子化部102bに入力される。量子化部102bは、直交変換をスキップする符号化対象ブロック(以下、「変換スキップ符号化対象ブロック」という)について予測残差を量子化し、量子化された予測残差である量子化予測残差をエントロピー符号化部103A及び逆量子化部104aに出力する。
変換スキップ符号化対象ブロックについて、エントロピー符号化部103Aは、量子化部102bから入力された量子化予測残差に対してエントロピー符号化を行い、データ圧縮を行って符号化データ(ビットストリーム)を生成し、符号化データを画像符号化装置1Aの外部に出力する。
変換スキップ符号化対象ブロックについて、逆量子化部104aは、量子化部102bが行う量子化処理に対応する逆量子化処理を行う。変換スキップブロックについて、切替部104cが逆量子化部104aの出力を選択することにより、逆変換部104bは、逆直交変換処理をスキップする。よって、逆量子化部104aが復元した信号はは、逆直交変換処理を経ることなく、復元予測残差として合成部105に入力される。
評価部111は、変換スキップ符号化対象ブロックについて、動き補償予測部109が複数の参照画像を用いて動き補償予測を行う場合において、複数の参照画像間の類似度を画素単位で評価し、評価結果を表すマップ情報をエントロピー符号化部103Aに出力する。エントロピー符号化部103Aは、変換スキップ符号化対象ブロックについて、評価部111から入力されたマップ情報に基づいて、量子化部102bから入力された復元予測残差を並び替えたうえで符号化する。評価部111及びエントロピー符号化部103Aの詳細については後述する。
<2.画像復号装置の構成>
図2は、実施形態に係る画像復号装置2Aの構成を示す図である。図2に示すように、画像復号装置2Aは、エントロピー符号復号部200Aと、逆量子化部201aと、逆変換部201bと、切替部201cと、合成部202と、イントラ予測部203と、ループフィルタ204と、フレームメモリ205と、動き補償予測部206と、切替部207と、評価部208とを備える。
エントロピー符号復号部200Aは、画像符号化装置1により生成された符号化データを復号し、量子化直交変換係数を逆量子化部201aに出力する。また、エントロピー符号復号部200Aは、符号化データを復号し、予測(イントラ予測及び動き補償予測)に関する情報とフィルタ処理に関する情報とを取得し、予測に関する情報をイントラ予測部203及び動き補償予測部206に出力し、フィルタ処理に関する情報をループフィルタ204に出力する。
逆量子化部201a、逆変換部201b、及び切替部201cは、ブロック単位で逆量子化処理及び逆直交変換処理を行う逆量子化・逆変換部201を構成する。
逆量子化部201aは、画像符号化装置1Aの量子化部102bが行う量子化処理に対応する逆量子化処理を行う。逆量子化部201aは、エントロピー符号復号部200Aから入力された量子化直交変換係数を、量子化パラメータ(Qp)及び量子化行列を用いて逆量子化することにより、直交変換係数を復元し、復元した直交変換係数(復元直交変換係数)を逆変換部201bに出力する。
切替部201cは、逆量子化・逆変換部201の出力を、逆変換部201bの出力と、逆量子化部201aの出力との間で切替える。通常は逆変換部201bの出力を選択し、後述する変換スキップ復号対象ブロックの場合は逆量子化部201aの出力を選択する。これにより、変換スキップ復号対象ブロックの場合は、復元予測残差と復元直交変換係数とを同一の信号とみなすことができ、また、変換スキップ復号対象ブロックの場合は、量子化直交変換係数と量子化予測残差とを同一の信号とみなすことができる。
逆変換部201bは、画像符号化装置1Aの変換部102aが行う直交変換処理に対応する逆直交変換処理を行う。逆変換部201bは、逆量子化部201aから入力された復元直交変換係数に対して逆直交変換を行って予測残差を復元し、復元した予測残差である復元予測残差を合成部202に出力する。
合成部202は、逆変換部201bから切替部201cを介して入力された復元予測残差と、切替部207から入力された予測画像とを画素単位で合成することにより、元の対象ブロックを再構成し、再構成ブロックをイントラ予測部203及びループフィルタ204に出力する。
イントラ予測部203は、合成部202から入力された再構成ブロックを参照し、エントロピー符号復号部200Aから入力されたイントラ予測情報に基づいてイントラ予測を行うことによりイントラ予測画像を生成し、イントラ予測画像を切替部207に出力する。
ループフィルタ204は、エントロピー符号復号部200Aから入力されたフィルタ処理情報に基づいて、合成部202から入力された再構成ブロックに対して、画像符号化装置1Aのループフィルタ107が行うフィルタ処理と同様なフィルタ処理を行い、フィルタ処理後の再構成ブロックをフレームメモリ205に出力する。
フレームメモリ205は、ループフィルタ204から入力された再構成ブロックをフレーム単位で記憶し、復号済み画像として画像復号装置2Aの外部に出力する。
動き補償予測部206は、フレームメモリ205に記憶された復号済み画像を参照画像として用いて、エントロピー符号復号部200Aから入力された動きベクトル情報に基づいて動き補償予測(インター予測)を行うことにより、動き補償予測画像を生成し、動き補償予測画像を切替部207に出力する。
切替部207は、イントラ予測部203から入力されたイントラ予測画像と、動き補償予測部206から入力された動き補償予測画像とを切替えて、予測画像を合成部202に出力する。
一方、変換スキップモードが適用された復号対象ブロック(変換スキップ復号対象ブロック)について、エントロピー符号復号部200Aは、符号化装置1により生成された符号化データを復号し、量子化された予測残差(量子化予測残差)を逆量子化部201aに出力する。
変換スキップブロックについて、逆量子化部201aは、画像符号化装置1Aの量子化部102bが行う量子化処理に対応する逆量子化処理を行う。変換スキップブロックについて、切替部201cが逆量子化部201aの出力を選択することにより、逆変換部201bは、逆直交変換処理をスキップする。よって、逆量子化部201aが復元した予測残差(復元予測残差)は、逆直交変換処理を経ることなく合成部202に入力される。
評価部208は、画像符号化装置1Aの評価部111と同様な動作を行う。具体的には、評価部208は、変換スキップ復号対象ブロックについて、動き補償予測部206が複数の参照画像を用いて動き補償予測を行う場合において、複数の参照画像間の類似度を画素単位で評価し、評価結果を表すマップ情報をエントロピー符号復号部200Aに出力する。エントロピー符号復号部200Aは、変換スキップ符号化対象ブロックについて、符号化データを復号して量子化予測残差を取得し、評価部208から入力されたマップ情報に基づいて量子化予測残差を元の並び順に並べ替えて出力する。評価部208及びエントロピー符号復号部200Aの詳細については後述する。
<3.動き補償予測>
図3は、動き補償予測の一例を示す図である。図4は、予測画像及び予測残差の一例を示す図である。動き補償予測のシンプルな例として、HEVCで用いられている双予測、特に前方向と後方向予測(両方向予測)を用いる場合について説明する。
図3に示すように、動き補償予測は、符号化対象フレーム(現フレーム)に対して時間的に前及び後のフレームを参照する。図3の例では、現フレームであるtフレーム目の画像中のブロックの動き補償予測を、t-1フレーム目とt+1フレーム目とを参照して行う。動き補償は、t-1及びt+1フレーム目の参照フレーム内から、符号化対象ブロックと類似する箇所(ブロック)をシステムで設定された探索範囲の中から検出する。
検出された箇所が参照画像である。符号化対象ブロックに対する参照画像の相対位置を表す情報が図中に示す矢印であり、動きベクトルと呼ばれる。動きベクトルの情報は、画像符号化装置1Aにおいて、参照画像のフレーム情報とともにエントロピー符号化によって符号化される。一方、画像復号装置2Aは、画像符号化装置1Aにより生成された動きベクトルの情報に基づいて参照画像を検出する。
図3及び図4に示すように、動き補償によって検出された参照画像1及び2は、符号化対象ブロックに対し、参照するフレーム内で位置合わせされた類似する部分画像であるため、符号化対象ブロックに類似した画像となる。図4の例では、符号化対象ブロックは、星の絵柄と部分的な円の絵柄とを含んでいる。参照画像1は、星の絵柄と全体的な円の絵柄とを含んでいる。参照画像2は、星の絵柄を含むが、円の絵柄を含んでいない。
かかる参照画像1及び2から予測画像を生成する。予測処理は処理負荷の高い処理であるため、参照画像1及び2を平均化することによって予測画像を生成することが一般的である。但し、より高度な処理、例えば、ローパスフィルタやハイパスフィルタ等による信号強調処理を併用して予測画像を生成してもよい。ここで、参照画像1は円の絵柄を含み、参照画像2は円の絵柄を含まないため、参照画像1及び2を平均化して予測画像を生成すると、予測画像における円の絵柄は、参照画像1に比べて信号が半減している。
参照画像1及び2から得られた予測画像と符号化対象ブロックとの差分が予測残差である。参照画像1及び2から得られた予測画像と対象画像ブロック(符号化対象画像)との差分が予測残差である。図4に示す予測残差において、丸の絵柄のずれた部分(斜線部)に大きな差分が生じているが、それ以外の部分については精度よく予測が行えており、差分が生じていない。
差分が生じていない星の絵柄の部分は、参照画像1と参照画像2との間の類似度が高い部分であって、高精度な予測が行われた部分である。一方、大きな差分が生じている部分は、各参照画像に特有な部分、すなわち、参照画像1と参照画像2との間の類似度が低い部分である。よって、参照画像1と参照画像2との間の類似度が低い部分、すなわち、予測残差における「領域A」は、予測の精度が低く、大きな予測残差を生じさせるといえる。
そこで、画像符号化装置1Aは、変換スキップモードにおいて、参照画像1と参照画像2との間の類似度が低い部分を予測残差が大きい部分とみなして優先的に符号化する。具体的には、エントロピー符号化部103Aは、参照画像間の類似度の低い画素位置から順に量子化予測残差を符号化することにより有意係数を優先的に符号化し、より早期に終了フラグを付与できるようにする。
一方、予測残差における「領域B」は、参照画像1と参照画像2との間の類似度が高い部分であるが、大きな予測残差を生じている。このため、参照画像1と参照画像2との間の類似度が低い部分である領域Aのみを量子化予測残差が大きい部分とみなして優先的に符号化すると、「領域B」の符号化が後回しとなり、終了フラグの付与が遅れることになる。
特に、HEVCで用いられている従来の変換スキップ符号化対象ブロックの符号化では、対角スキャン(MPEG-2等のジグザグスキャンに類似した、右斜め上方向に行なわれるスキャン方法)で符号化を行う。このため、従来の対角スキャンを用いると、領域Bは早期に符号化が行われ、終了フラグも早期に付与される。つまり、このような場合では、参照画像1と参照画像2との間の類似度が低い部分を予測残差が大きい部分とみなして優先的に符号化するよりも、従来の対角スキャンに従った順に符号化した方が終了フラグの付与が早くなる。
そこで、実施形態においては、変換スキップモードにおいて、参照画像1と参照画像2との間の画素単位での類似度の分布を表すマップ情報と「量子化された予測残差」である量子化予測残差の分布との相関を求め、相関が低い場合には従来のスキャン順に従って符号化を行い、相関が高い場合にはマップ情報に基づいて類似度が低い部分から順に符号化を行う。これにより、効率的なエントロピー符号化を行うことが可能になり、符号化効率を改善できる。
以下、参照画像1と参照画像2との間の画素単位での類似度の分布を表すマップ情報と量子化予測残差の分布との相関を求める一例について説明するが、相関を求める際に、量子化予測残差に代えて復元予測残差を用いてもよい。すなわち、参照画像1と参照画像2との間の画素単位での類似度の分布を表すマップ情報と復元予測残差の分布との相関を求めてもよい。
<4.評価部>
図5は、画像符号化装置1Aにおける評価部111の構成の一例を示す図である。図5に示すように、評価部111は、差分算出部111aと、正規化部111bとを備える。
差分算出部111aは、動き補償予測部109から入力された参照画像1及び2の差分値(具体的には、差分値の絶対値。以下同様)を画素単位で算出し、算出した差分値を正規化部111bに出力する。
ここで、差分値が大きいほど類似度が低く、予測の確度が低いといえる。差分値が小さいほど類似度が高く、予測の確度が高いといえる。差分算出部111aは、各参照画像に対してフィルタ処理を行ったうえで差分値を算出してもよい。差分算出部111aは、二乗誤差等の統計量を算出し、かかる統計量を出力してもよい。
正規化部111bは、差分算出部111aから入力された画素単位での差分値を、符号化対象ブロック内で最大となる差分値(すなわち、符号化対象ブロック内の差分値の最大値)で正規化して出力する。正規化部111bは、量子化の粗さを定める量子化パラメータ(Qp)と、直交変換係数ごとに異なる量子化値が適用される量子化行列との少なくとも一方に基づいて、正規化部111bから入力された差分値を調整して出力してもよい。
評価部111は、符号化対象ブロック内の画素単位での確度Rijを例えば下記の式(1)のように算出する。
Rij=1-(abs(Xij-Yij)/maxD×Scale(Qp)) ・・・(1)
但し、Xijは参照画像1の画素位置ijの画素値であり、Yijは参照画像2の画素位置ijの画素値であり、absは絶対値を得る関数である。
また、式(1)において、maxDは、符号化対象ブロック内の差分値abs(Xij-Yij)の最大値である。maxDを求めるために符号化対象ブロック内のすべての画素位置について差分値を求める必要があるが、この処理を省略するためにすでに符号化処理済みの隣接するブロックの最大値で代用してもよい。或いは、量子化パラメータ(Qp)や量子化行列の量子化値と、maxDとの対応関係を定めるテーブルを用いて、量子化パラメータ(Qp)や量子化行列の量子化値からmaxDを求めてもよい。或いは、予め仕様で規定された固定値をmaxDとして用いてもよい。
また、式(1)において、Scale(Qp)は、量子化パラメータ(Qp)や量子化行列の量子化値に応じて乗じられる係数である。Scale(Qp)は、Qpや量子化行列の量子化値が大きい場合に1.0に近づき、小さい場合に0に近づくように設計され、その度合いはシステムによって調整するものとする。或いは、予め仕様で規定された固定値をScale(Qp)として用いてもよい。
なお、maxDやScale(Qp)として固定値等の代用値を用いる場合には、確度Rijが1.0を超える、あるいは0を下回る場合も存在しうるが、その場合は、1.0や0にクリップ処理すればよい。
評価部111は、符号化対象ブロック内の各画素位置ijの確度Rijからなるマップ情報をエントロピー符号化部103Aに出力する。
但し、評価部111は、変換スキップ符号化対象ブロックについて、複数の参照画像を用いる動き補償予測を適用する場合にのみ評価(確度Rijの算出)を行い、それ以外のモード、例えば単方向予測やイントラ予測処理においては、評価(確度Rijの算出)を行わなくてもよい。
なお、画像復号装置2Aにおける評価部208は、画像符号化装置1Aにおける評価部111と同様に構成される。具体的には、画像復号装置2Aにおける評価部208は、差分算出部208aと、正規化部208bとを備える。画像復号装置2Aにおける評価部208は、符号化対象ブロック内の各画素位置ijの確度Rijからなるマップ情報をエントロピー符号復号部200Aに出力する。
<5.エントロピー符号化部>
図6は、エントロピー符号化部103Aの構成の一例を示す図である。図7は、確度インデックスの生成例を示す図である。図8は、量子化予測残差の並び替えの一例を示す図である。
図6に示すように、エントロピー符号化部103Aは、ソート部103aと、予測残差並び替え部103bと、シリアライズ部103cと、確度並び替え部103dと、判定部103eと、切替部103fと、符号化部103gとを備える。
ソート部103aは、評価部111から入力されたマップ情報中の確度Rijを低い順に並べ替える。具体的には、図7(A)に示すように、マップ情報において確度Rijは2次元に配列されているため、ソート部103aは、例えばマップ情報をジグザグスキャン(左上から右下のスキャン順)によりシリアライズして確度列とする。そして、ソート部103aは、図7(B)に示すように、確度Rijが低い順に並び替え、確度Rijをインデックスiとして、インデックスiと画素位置(X座標の位置及びY座標の位置)とを対応付けた確度インデックス情報を予測残差並び替え部103b及び確度並び替え部103dに出力する。
なお、図7(A)の例において、画素位置(x,y)=(2,2)における確度が最も低く、画素位置(x,y)=(2,3)における確度が2番目に低く、画素位置(x,y)=(3,2)における確度が3番目に低く、画素位置(x,y)=(3,3)における確度が4番目に低い。かかる画素位置からなる領域は、予測精度が低く、大きな予測残差を発生させると推定できる。一方、確度が1である画素位置については、予測精度が高く、予測残差を発生させないと推定できる。
予測残差並び替え部103bは、変換スキップブロックについて、量子化部102bから入力された量子化予測残差を、ソート部103aから入力された確度インデックス情報に基づいて並び替える。具体的には、予測残差並び替え部103bは、確度の低い画素位置(すなわち、参照画像間の類似度の低い画素位置)から順に量子化予測残差が符号化されるように、量子化予測残差を画素単位で並び替える。
図8(A)に示す量子化予測残差は2次元に配列されており、予測残差並び替え部103bは、図8(B)に示すように、ソート部103aから入力された確度インデックス情報に基づいて、確度が低い画素位置の量子化予測残差を左上領域に集中させるように並び替える。ここではスキャン順としてジグザグスキャンを想定しており、予測残差並び替え部103bは、左上領域から右下領域の順にスキャンを行い、確度が低い画素位置の量子化予測残差を優先的にシリアライズして、確度が低い(すなわち、参照画像間の類似度が低い)順に量子化予測残差が並ぶ量子化予測残差列を切替部103f及び判定部103eに出力する。但し、スキャン順はジグザグスキャンに限定されず、水平スキャンや垂直スキャンを用いてもよい。予測残差並び替え部103bは、スキャンを行う前に並び替えを行うのではなく、スキャンを行った後に並び替えを行ってもよい。
或いは、予測残差並び替え部103bは、ジグザグスキャンや、水平スキャン、垂直スキャン等の固定的なスキャン順に代えて、確度が低い画素位置から順に量子化予測残差をスキャンするように可変のスキャン順を決定し、決定したスキャン順でスキャンを行うことにより、確度が低い順に量子化予測残差が並ぶ量子化予測残差列を切替部103f及び判定部103eに出力してもよい。
シリアライズ部103cは、量子化部102bから入力された量子化予測残差に対して、従来の変換スキップブロックに対する処理と同じシリアライズ処理を行う。すなわち、シリアライズ部103cは、2次元の量子化予測残差を予め規定された順(対角スキャンや、ジグザグスキャンなど)で1次元の量子化予測残差列に変換し、量子化予測残差列を切替部103fに出力する。
確度並び替え部103dは、ソート部103aから入力された確度インデックス情報に基づいて、予測残差並び替え部103bと同様な方法で、評価部111から入力されたマップ情報を1次元に並び替える。具体的には、確度並び替え部103dは、確度の低い画素位置(すなわち、参照画像間の類似度の低い画素位置)から順にマップ情報を一次元の信号として出力する。この出力信号を、ここでは「確度列」と呼ぶ。確度並び替え部103dは、かかる確度列を判定部103eに出力する。
判定部103eは、確度並び替え部103dから入力された確度列と、予測残差予測残差並び替え部103bから入力された量子化予測残差列の絶対値とから、確度列と量子化予測残差列との間の相関を表す相似度を求め、相似度が閾値Th以上(あるいは、より大きい場合)は、マップ情報に基づく並び替えの適用を示す信号を切替部103fに出力し、相似度が閾値Th未満(あるいは以下)の場合は、マップ情報に基づく並び替えの不適用を示す信号を切替部103fに出力する。
ここで、確度列及び量子化予測残差列から求める相似度の例1乃至3を以下に示す。以下では、変換スキップブロックの画素数をN、確度列をpi、確度列を逆順に並べた数列(逆順確度列)をqi(すなわち、qi=pN-1-i)、量子化予測残差列をdi、求める相似度をRとして説明する。iはインデックスであり、の範囲を取る。
(1)判定部103eで用いる相似度の例1
相似度として、逆順確度列と、量子化予測残差列の絶対値とのコサイン類似度を用いた例を示す。
(2)判定部103eで用いる相似度の例2
別の例として、L2距離を用いた相似度の例を示す。
ここで、Qiはqiを0~1の範囲に正規化した確度列である(0が最も確度が低く、1が最も確度が高い)。確度の正規化は、評価部111における正規化と同様である。なお、確度列がもともと正規化されていた場合はQi=qiとなる。また、Diは、量子化予測残差列の絶対値を0~1の範囲に正規化した数列である。対象とする画像フォーマットの取り得る最大の画素値をminL、最小値をmaxLとしたとき、Diは、例えば、
として求めることができる。
(3)判定部103eで用いる相似度の例3
さらに別の例としてL1距離を用いた相似度の例を示す。
このように相似度としては、2つの数列の間で計算可能なさまざまな類似度や距離を用いることができる。類似度(2つの数列が似ているほど値が大きい指標)の場合は正規化した値を相似度として用いればよく、距離(2つの数列が似ているほど値が小さくなる指標)の場合は正規化した距離を1から減算した値を相似度として用いればよい。
なお、相似度と比較する閾値Thは、あらかじめ定めた定数であってもよいし、可変の値であってもよい。可変の値とする場合、符号化データに当該閾値を含めて伝送してもよい。
切替部103fは、判定部103eから入力された信号に基づき、マップ情報に基づく並び替え適用の場合は、予測残差並び替え部103bの出力を符号化部103gに送り、マップ情報に基づく並び替え不適用の場合は、シリアライズ部103cの出力を符号化部103gに送る。なお、マップ情報に基づく並び替え不適用の場合は従来と同じ変換スキップによる符号化対象ブロックの処理になる。
符号化部103gは、切替部103fから入力された予測残差列中の量子化予測残差を符号化して符号化データを出力する。符号化部103gは、予測残差並び替え部103bから入力された量子化予測残差列に含まれる最後の有意係数を判定し、量子化予測残差列の先頭から当該最後の有意係数までに対して符号化を行う。符号化部103gは、予測残差並び替え部103bから入力された量子化予測残差列の先頭から順に有意係数であるか否かを判定し、最後の有意係数に対して終了フラグを付与し、終了フラグの後の量子化予測残差(すなわち、ゼロ係数)を符号化しないことにより、有意係数を効率的に符号化する。
例えば、符号化部103gは、図8(C)に示すように、切替部103fから入力された量子化予測残差列のうち、最後の有意係数、すなわち、図8(B)の(X=1,Y=2)の座標位置を、last_sig_coeff_x及びy(終了フラグ)として符号化する。その後、符号化部103gは、最後の有意係数の位置(1,2)から、スキャン順の逆順、すなわち、(3,3)から(0,0)に向かう順に、有意係数が存在するか否かをsig_coeff_flagとして符号化する。sig_coeff_flagにおいて、有意係数が存在する座標位置を“1”で示し、有意係数が存在しない座標位置を“0”で示す。
さらに、符号化部103gは、有意係数が1よりも大きいか否かをcoeff_abs_level_greater1_flagとして符号化し、有意係数が2よりも大きいか否かをcoeff_abs_level_greater2_flagとして符号化する。符号化部103gは、有意係数のうち2よりも大きいものについては、有意係数の絶対値から3を引いた値をcoeff_abs_level_remainingとして符号化するとともに、有意係数の正負を表すフラグをcoeff_sign_flagとして符号化する。
かかるエントロピー符号化により、最後の有意係数の位置が右下領域(スキャン順の後ろ)になればなるほど、last_sig_coeff_x及びyの値は大きくなり、かつ、Sig_coeff_flagの量が増大する。そして、かかるエントロピー符号化により発生情報量は増大することになる。
マップ情報に基づく並び替えを適用する場合には、確度の低い画素位置(すなわち、参照画像間の類似度の低い画素位置)から順に量子化予測残差が符号化されるように並び替えを行うため、Last_sig_coeff_x及びyの値が小さくなり、かつ、Sig_coeff_flagの量が減少する。これにより、エントロピー符号化による発生情報量を減少させることができる。
さらに、図4に示す例のように、複数の参照画像間の類似度の低い画素位置は大きな予測残差を有するという仮定が成立しないような場合であって、上記の相似度が閾値Th未満である場合には、マップ情報に基づく並び替えを不適用とする。つまり、量子化予測残差を従来の対角スキャンに従った順に符号化する。これにより、マップ情報に基づく並び替えを適用することによる符号化効率の悪化を回避できる。
<6.エントロピー符号復号部>
図9は、エントロピー符号復号部200Aの構成の一例を示す図である。図9に示すように、エントロピー符号復号部200Aは、復号部200aと、ソート部200bと、予測残差予測残差並び替え部200cと、デシリアライズ部200dと、確度並び替え部200eと、判定部200fと、切替部200gとを備える。
復号部200aは、画像符号化装置1Aにより生成された符号化データを復号し、量子化予測残差列(量子化された予測残差)と、予測(イントラ予測及び動き補償予測)に関する情報とを取得し、量子化予測残差列を予測残差並び替え部200c及びデシリアライズ部200dに出力し、予測に関する情報をイントラ予測部203及び動き補償予測部206に出力する。復号部200aは、符号化データから取得された変換スキップフラグが変換スキップの適用を示しており、予測に関する情報が双予測を表している場合には、マップ情報に基づく並び替えを行うと判断してもよい。これにより、マップ情報に基づく並び替えを行う旨のフラグを符号化データに含めて伝送する必要がなく、フラグの増大を抑制できる。
ソート部200bは、評価部208から入力されたマップ情報中の確度Rijを低い順に並べ替える。マップ情報において確度Rijは2次元に配列されているため、ソート部200bは、例えばマップ情報をジグザグスキャンによりシリアライズして確度列とする。そして、ソート部200bは、確度Rijが低い順に並び替え、確度Rijをインデックスiとして、インデックスiと画素位置(X座標の位置及びY座標の位置)とを対応付けた確度インデックス情報を予測残差並び替え部200c及び確度並び替え部200eに出力する。
予測残差並び替え部200cは、画像符号化装置1Aの予測残差並び替え部103bが行う並び替え処理の逆処理を行う。予測残差並び替え部200cは、変換スキップ復号対象ブロックについて、復号部200aから入力された量子化予測残差列を、ソート部200bから入力された確度インデックス情報に基づいて並び替えることによりデシリアライズし、2次元に配列された量子化予測残差を切替部200gに出力する。
デシリアライズ部200dは、従来の変換スキップブロックに対する処理と同じデシリアライズ処理を行う。すなわち、デシリアライズ部200dは、量子化予測残差列をあらかじめ定められた順(例えば左上から右下へのジグザグスキャン)で2次元の量子化予測残差に並び替える。
確度並び替え部200eは、評価部208から入力されたマップ情報に基づいて、画像符号化装置1の確度並び替え部103dと同じ処理を行い、確度列を判定部200fに出力する。
判定部200fは、画像符号化装置1の判定部103eと同じ処理を行う。
切替部200gは、判定部200fがマップ情報に基づく並び替えの適用を示す信号を出力した場合は、並び替え部200cの出力を選択し、判定部200fがマップ情報に基づく並び替えの不適用を示す信号を出力した場合は、デシリアライズ部200dの出力を選択する。切替部200gは、選択した出力(2次元の量子化予測残差)を逆量子化部201aに出力する。
実施形態において、予測残差並び替え部200c、デシリアライズ部200d、及び切替部200gは、並び替え部を構成する。かかる並び替え部200cは、判定部200fにより相似度が閾値以上であると判定された場合には、評価部208により評価された類似度に応じた順に量子化予測残差を並び替えて出力し、判定部200fにより相似度が閾値未満であると判定された場合には、量子化予測残差を予め規定された順に並び替えて出力する。
<7.画像符号化の動作>
図10は、実施形態に係る画像符号化装置1Aにおける処理フローを示す図である。画像符号化装置1Aは、符号化対象ブロックに対して変換スキップモードかつ動き補償予測を適用する場合に、本処理フローを実行する。
図10に示すように、ステップS1101において、動き補償予測部109は、複数の参照画像を用いて動き補償予測を行うことにより符号化対象ブロックを予測し、符号化対象ブロックに対応する予測画像を生成する。
ステップS1102において、評価部111は、複数の参照画像間の類似度を画素位置ごとに評価し、符号化対象ブロック内の各画素位置の予測の確度(予測精度)を表すマップ情報を生成する。
ステップS1103において、減算部101は、符号化対象ブロックと予測画像との間の画素単位での差分を表す予測残差を算出する。
ステップS1104において、量子化部102bは、減算部101が算出した予測残差に対して量子化を行うことにより、量子化予測残差を生成する。
ステップS1105において、エントロピー符号化部103Aは、量子化予測残差とマップ情報との間の相関を表す相似度を算出し、相似度が閾値以上であるか否かを判定する。
ステップS1106において、エントロピー符号化部103Aは、相似度が閾値以上である場合は、マップ情報に基づいて量子化予測残差を確度の低い順に符号化して符号化データを出力する。相似度が閾値未満である場合、エントロピー符号化部103Aは、予め規定された順に符号化を行って符号化データを出力する。
ステップS1107において、逆量子化部104aは、量子化部102bから入力された量子化予測残差に対して逆量子化を行うことにより予測残差を復元し、復元予測残差を生成する。
ステップS1108において、合成部105は、復元予測残差を画素単位で予測画像と合成することにより対象ブロックを再構成し、再構成ブロックを生成する。
ステップS1109において、ループフィルタ107は、再構成ブロックに対してフィルタ処理を行う。
ステップS1110において、フレームメモリ108は、フィルタ処理後の再構成ブロックをフレーム単位で記憶する。
<8.画像復号の動作>
図11は、実施形態に係る画像復号装置2Aにおける処理フローを示す図である。画像復号装置2Aは、対象ブロックに対して変換スキップモードかつ動き補償予測を適用する場合に、本処理フローを実行する。
図11に示すように、ステップS1201において、エントロピー符号復号部200Aの復号部200aは、符号化データを復号して動きベクトル情報を取得し、取得した動きベクトル情報を動き補償予測部206に出力する。
ステップS1202において、動き補償予測部206は、動きベクトル情報に基づく複数の参照画像を用いて動き補償予測を行うことにより復号対象ブロックを予測し、復号対象ブロックに対応する予測画像を生成する。
ステップS1203において、評価部208は、複数の参照画像間の類似度を画素位置ごとに算出し、ブロック内の各画素位置の予測の確度(予測精度)を表すマップ情報を生成する。
ステップS1204において、エントロピー符号復号部200Aは、符号化データを復号して量子化予測残差列を取得する。エントロピー符号復号部200Aは、量子化予測残差列とマップ情報との間の相関を表す相似度を算出し、相似度が閾値以上であるか否かを判定する。エントロピー符号復号部200Aは、相似度が閾値以上である場合は、マップ情報に基づいて量子化予測残差を並び替えて、2次元に配列された量子化予測残差を逆量子化部201aに出力する。相似度が閾値未満である場合、エントロピー符号復号部200Aは、予め規定された順に量子化予測残差を並び替えて、2次元に配列された量子化予測残差を逆量子化部201aに出力する。
ステップS1205において、逆量子化部201aは、量子化予測残差に対して逆量子化を行うことにより予測残差を復元し、復元予測残差を生成する。
ステップS1206において、合成部202は、復元予測残差を画素単位で予測画像と合成することにより対象ブロックを再構成し、再構成ブロックを生成する。
ステップS1207において、ループフィルタ204は、再構成ブロックに対してフィルタ処理を行う。
ステップS1208において、フレームメモリ205は、フィルタ処理後の再構成ブロックをフレーム単位で記憶して出力する。
<9.実施形態のまとめ>
画像符号化装置1Aにおいて、評価部111は、複数の参照画像間の類似度を画素単位で評価し、評価結果の情報(マップ情報)をエントロピー符号化部103Aに出力する。エントロピー符号化部103Aは、量子化予測残差とマップ情報との間の相関を表す相似度を算出し、相似度が閾値以上である場合は、マップ情報に基づいて、量子化部102bから入力された量子化予測残差を、参照画像間の類似度の低い画素位置から順に符号化する。参照画像間の類似度の低い画素位置から順に量子化予測残差を符号化することにより、有意係数を優先的に符号化し、より早期に終了フラグを付与することができる。これにより、変換スキップブロックに対して効率的なエントロピー符号化を行うことを可能とし、符号化効率を改善することができる。
画像復号装置2Aにおいて、評価部208は、複数の参照画像間の類似度を画素単位で評価し、評価結果の情報(マップ情報)をエントロピー符号復号部200Aに出力する。エントロピー符号復号部200Aは、符号化データを復号して画素単位で量子化予測残差を取得し、量子化予測残差とマップ情報との間の相関を表す相似度を算出し、相似度が閾値以上である場合は、マップ情報に基づいて量子化予測残差を並べ替えて出力する。このように、評価部208による評価の結果に基づいて量子化予測残差を並べ替えることにより、並び替えの詳細を指定する情報が画像符号化装置から伝送されなくても、エントロピー符号復号部200Aが自律的に量子化予測残差を並べ替えることができる。これにより、並び替えの詳細を指定する情報を画像符号化装置1から伝送する必要がないため、符号化効率の低下を回避することができる。
また、予測残差とマップ情報との間の相関を表す相似度が閾値未満である場合は、予め規定された順に並び替えを行うことにより、符号化効率をさらに改善することができる。具体的には、複数の参照画像間の類似度の低い画素位置は大きな予測残差を有するという仮定が成立しないような場合であって、相似度が閾値未満である場合には、マップ情報に基づく並び替えを不適用とし、従来の対角スキャンに従った順に量子化予測残差を符号化する。これにより、マップ情報に基づく並び替えを適用することによる符号化効率の悪化を回避できる。
<10.変更例1>
図12は、実施形態の変更例1に係る重複動き補償の一例を示す図である。
画像符号化装置1Aの評価部111及び画像復号装置2Aの評価部208は、以下に示す方法でマップ情報として誤差マップを生成し、並べ替え部112に入力してもよい。誤差マップを並び替え部112に入力する場合には、誤差マップの値が大きい領域を類似度が低い領域とし、誤差マップの値が小さい領域を類似度が高い領域として、並べ替え部112は量子化予測残差の並び換え処理を行う。
双予測モードの予測画像の生成に用いる2つの参照画像(参照先ブロック)の輝度信号をL0[i,j]及びL1[i,j](但し、[i,j]は対象ブロック内の座標)とすると、下記の式(2)により誤差マップmap[i,j]及びその最大値max_mapを算出する。
map [i,j] = abs (L0 [i,j] - L1 [i,j])
max_map = max (map [i,j]) ・・・(2)
式(2)のmax_mapが6ビット精度を超える(64を超える)場合には、下記の式(3)により、max_mapが6ビット精度に収まるように設定したshiftにより誤差マップ及び最大値を更新する。
max_map = max_map >> shift
map [i,j] = map [i,j] >> shift ・・・(3)
<11.変更例2>
画像符号化装置1Aの動き補償予測部109及び画像復号装置2Aの動き補償予測部206は、対象ブロック(CU)を複数の小ブロックに分割し、小ブロックごとに異なる動きベクトルを適用可能とし、小ブロックごとに片方向予測、双予測を切り替え可能であってもよい。かかる場合、片方向予測及び双方向予測の両方を用いて予測画像を生成するCUに対しては、画像符号化装置1Aの評価部111及び画像復号装置2Aの評価部208がマップ情報を算出しないものとしてもよい。一方、全ての小ブロックについて双予測により予測画像を生成している場合には、画像符号化装置1Aの評価部111及び画像復号装置2Aの評価部208は、マップ情報を生成する。
また、画像符号化装置1Aの動き補償予測部109及び画像復号装置2Aの動き補償予測部206は、動きベクトルの異なるブロック境界における予測画像の不連続性低減のために、重複動き補償(OBMC:Ooverlapped Block Motion Compensation)を行ってもよい。画像符号化装置1Aの評価部111及び画像復号装置2Aの評価部208は、マップ情報生成の際に、OBMCによる参照画素の補正を考慮してもよい。
例えば、OBMCの補正に用いる周囲のブロックの予測モードが双予測である場合には、画像符号化装置1Aの評価部111及び画像復号装置2Aの評価部208は、OBMCの補正が影響する予測画像の領域について、周辺ブロックの双予測の予測画像生成に用いる参照画像(L0及びL1)の動きベクトルを用いてマップ情報を補正する。具体的には、ブロック境界領域について、隣り合うブロックの動きベクトルが双予測である場合には、隣り合うブロックのマップ情報との位置に応じた加重平均をする。隣り合うブロックがイントラモードの場合や、片方向予測の場合には、マップ情報の補正は行わない。図12のケースでは、上側のブロック境界についてはL0aとL1aを用いてマップ情報を生成し、その下側の領域について(当該CUと重なり合う領域について)当該CUのマップ情報との加重平均をする。下側や右側、左側CUの予測モードが片方向予測であるので、それらのCUと重なり合う領域についてはマップ情報の補正は行わない。
<12.変更例3>
上述した実施形態において、予測残差を画素単位で並び替える一例を説明したが、予測残差を画素グループ(小ブロック)単位で並び替えてもよい。かかる小ブロックは、4×4の画素からなるブロックであり、CGと称されることがある。
図13は、実施形態の変更例3に係る画像符号化装置1Bの構成を示す図である。図13に示すように、画像符号化装置1Bは、予測残差を画素グループ(小ブロック)単位で並び替える並び替え部112を備える。並び替え部112は、対象ブロック(CU)が双予測を用いて予測画像を生成するものであって、当該CUが変換スキップモードを適用するものである場合には、上述した誤差マップに基いて、当該CUの予測残差に対して小ブロック単位(4×4)での並び換えを行う。
図14は、実施形態の変更例3に係る並び替え部112の動作の一例を示す図である。
図14(A)に示すように、画像符号化装置1Bの減算部101は、CUに対応する予測残差を算出する。図14(A)の例では、CU内の右上領域に予測残差が存在する。CU内の右上領域は、参照画像間の類似度が低い領域であって、予測精度(確度)が低い領域であるとみなすことができる。
図14(B)に示すように、画像符号化装置1Bの評価部111又は並び替え部112は、誤差マップを4×4のCG単位に分割し、CG単位での誤差の平均値CGmapを下記の式(4)により算出する。
そして、並び替え部112は、誤差の平均値CGmapが高い順にCGを並び替えてインデックスを付与する。言い換えると、並び替え部112は、参照画像間の類似度が低い順にCGを並び替えてインデックスを付与する。図14(B)の例において、各CG内の数字は並び替え後のインデックスを表す。右上領域のCGの平均値CGmapが大きいため、スキャン(符号化)の優先順位が高く設定されている。次に、並び替え部112は、図14(C)に示すように、インデックスが小さい順にスキャン(符号化)されるようにCGを並べ替える。その結果、並び替え部112は、図14(D)に示すように、CG単位で並び替えた予測残差を量子化部102bに出力する。
量子化部102bは、並び替え部112から入力された予測残差に対して量子化を行って、量子化した量子化予測残差をエントロピー符号化部103Bに出力する。エントロピー符号化部103Bは、誤差の平均値CGmapが高い順にCGを符号化して符号化データを生成する。
なお、並び替え部112は、逆量子化部104aが出力する復元予測残差に対して、元のCGの並び順に戻すようにCG単位で並び替えを行い、CG単位で並び替えた復元予測残差を合成部105に出力する。
図15は、実施形態の変更例3に係る画像復号装置2Bの構成を示す図である。図15に示すように、画像復号装置2Bは、逆量子化部201aが出力する復元予測残差をCG単位で並び替える並び替え部209を備える。
並び替え部209は、対象ブロック(CU)が双予測を用いて予測画像を生成するものであって、当該CUが変換スキップモードを適用するものである場合には、上述した誤差マップに基いて、当該CUの予測残差に対してCG単位での並び換えを行う。
具体的には、画像復号装置2Bの評価部208又は並び替え部209は、誤差マップを4×4のCG単位に分割し、CG単位での誤差の平均値CGmapを上記の式(5)により算出する。そして、並び替え部209は、CG単位での誤差の平均値CGmapに基づいて、画像復号装置2Aの並び替え部112が行う並び替え処理の逆処理を行い、並び替え後の予測残差を合成部202に出力する。
なお、本変更例において、相似度に基づく判定及び切替を行う場合は、画素グループ(CG)内の予測残差の絶対値の平均値を、上述した実施形態における予測残差列の1つの要素として扱えばよい。
<13.変更例4>
上述した実施形態において、予測残差を画素単位もしくは小ブロック単位で並び替える例を説明したが、予測残差を水平もしくは垂直もしくは水平垂直に反転させるよう並び換えてもよい。
図16に示すように、画像符号化装置1Bの減算部101は、対象ブロックに対応する予測残差を算出する。図16の例では対象ブロックの右上領域に予測残差が存在する。また、対象ブロックの右上領域は、参照画素間の類似度が低い領域であって、予測精度(確度)が低い領域であるとみなすことができる。
実施形態の変更例4の並び替え部112は、誤差マップの重心を下記の式(5)により算出する。
並び替え部112は、算出した誤差マップの重心(gi,gj)がマップの右上領域に位置する場合、すなわち、左上座標を(0,0)、右下座標を(m,n)とすると、
かつ
である場合には、予測残差を水平反転する。
並び替え部112は、誤差マップの重心が左下領域に位置する場合、すなわち、
かつ
である場合には、予測残差を垂直反転する。
並び替え部112は、誤差マップの重心が右下領域に位置する場合、すなわち、
かつ
である場合には、予測残差を水平および垂直に反転する。
なお、誤差マップの重心が右下領域である場合には、並び替え部112は、予測残差を水平および垂直に反転するかわりに、予測残差を180度回転させるよう構成してもよいし、係数符号化の際のスキャン順を左上から右下に行うかわりに、右下から左上に向かうように変更するよう構成してもよい。
また、処理の低減のため、誤差マップの重心を算出せずに、誤差マップの最大値の位置を探索し、最大値の位置を前記重心の位置とみなして、上述の反転処理を行うよう施してもよい。
実施形態の変更例4の並べ替え部112による予測残差の反転処理が施された予測残差は量子化部102bに出力する。
量子化部102bは、並び替え部112から入力された予測残差に対して量子化を行って、量子化した量子化予測残差をエントロピー符号化部103Bに出力する。エントロピー符号化部103Bは、予測残差の左上領域から右下領域の順に符号化して符号化データを生成する。
なお、並び替え部112は、逆量子化部104aが出力する復元予測残差に対して、誤差マップの重心の位置に基いて予測残差の反転処理を行い、並び替えた復元予測残差を合成部105に出力する。
<14.その他の実施形態>
上述した実施形態において、エントロピー符号化部103Aが、2次元に配列された予測残差の全てを確度の低い順に読み出してシリアライズ処理を行う一例について説明した。しかしながら、2次元に配列された予測残差のうち確度が低い順に上位数個のみを読み出し、それ以外の予測残差についてはシステムで定められた固定の順序で読み出すとしてもよい。或いは、2次元に配列された予測残差について、確度に応じて読み出し順を所定の数だけ繰り上げる又は繰り下げるとしてもよい。
上述した実施形態において、動き補償予測としてインター予測を主として説明した。インター予測においては、現フレームと異なるフレーム内の参照画像が現フレームの対象ブロックの予測に用いられる。しかしながら、動き補償予測としてイントラブロックコピーと呼ばれる技術も適用することが可能である。イントラブロックコピーにおいては、現フレームと同じフレーム内の参照画像が現フレームの対象ブロックの予測に用いられる。
画像符号化装置1A、1Bが行う各処理をコンピュータに実行させるプログラム及び画像復号装置2A、2Bが行う各処理をコンピュータに実行させるプログラムが提供されてもよい。また、プログラムは、コンピュータ読取り可能媒体に記録されていてもよい。コンピュータ読取り可能媒体を用いれば、コンピュータにプログラムをインストールすることが可能である。ここで、プログラムが記録されたコンピュータ読取り可能媒体は、非一過性の記録媒体であってもよい。非一過性の記録媒体は、特に限定されるものではないが、例えば、CD-ROMやDVD-ROM等の記録媒体であってもよい。また、画像符号化装置1A、1Bが行う各処理を実行する回路を集積化し、画像符号化装置1A、1Bを半導体集積回路(チップセット、SoC)として構成してもよい。同様に、画像復号装置2A、2Bが行う各処理を実行する回路を集積化し、画像復号装置2A、2Bを半導体集積回路(チップセット、SoC)として構成してもよい。
以上、図面を参照して実施形態について詳しく説明したが、具体的な構成は上述のものに限られることはなく、要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。