(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023181491
(43)【公開日】2023-12-21
(54)【発明の名称】画像復号装置、画像復号方法及びプログラム
(51)【国際特許分類】
H04N 19/105 20140101AFI20231214BHJP
H04N 19/157 20140101ALI20231214BHJP
H04N 19/176 20140101ALI20231214BHJP
H04N 19/593 20140101ALI20231214BHJP
【FI】
H04N19/105
H04N19/157
H04N19/176
H04N19/593
【審査請求】有
【請求項の数】3
【出願形態】OL
(21)【出願番号】P 2023188459
(22)【出願日】2023-11-02
(62)【分割の表示】P 2022148628の分割
【原出願日】2019-03-11
(71)【出願人】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】110001564
【氏名又は名称】フェリシテ弁理士法人
(72)【発明者】
【氏名】海野 恭平
(72)【発明者】
【氏名】木谷 佳隆
(72)【発明者】
【氏名】河村 圭
(72)【発明者】
【氏名】内藤 整
(57)【要約】
【課題】ISPを適用するブロックであっても、各サブブロックの処理を並列に実行すること。
【解決手段】画像復号装置200は、イントラ予測による予測信号を生成する予測信号生成部242Cを備え、予測信号生成部242Cは、イントラサブ分割を適用するブロックにおいて、かかるブロック内の全てのサブブロックの予測信号を生成する際に、かかるブロックに隣接する復号済みブロックの画素を参照する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
画像復号装置であって、
イントラ予測による予測信号を生成する予測信号生成部を備え、
前記予測信号生成部は、イントラサブ分割を適用するブロックにおいて、前記ブロック内の全てのサブブロックの予測信号を生成する際に、前記サブブロックの幅が、第1閾値未満になる場合は、前記ブロックに隣接する復号済みブロックの画素を参照し、前記サブブロックの幅が、前記第1閾値以上になる場合は、直前に処理したサブブロックの復号済み画素を参照することを特徴とする画像復号装置。
【請求項2】
イントラ予測による予測信号を生成する工程を有し、
前記工程において、イントラサブ分割を適用するブロックにおいて、前記ブロック内の全てのサブブロックの予測信号を生成する際に、前記サブブロックの幅が第1閾値未満になる場合は、前記ブロックに隣接する復号済みブロックの画素を参照し、前記サブブロックの幅が、前記第1閾値以上になる場合は、直前に処理したサブブロックの復号済み画素を参照することを特徴とする画像復号方法。
【請求項3】
画像復号装置で用いるプログラムであって、コンピュータに、
イントラ予測による予測信号を生成する工程を実行させ、
前記工程において、イントラサブ分割を適用するブロックにおいて、前記ブロック内の全てのサブブロックの予測信号を生成する際に、前記サブブロックの幅が第1閾値未満になる場合は、前記ブロックに隣接する復号済みブロックの画素を参照し、前記サブブロックの幅が、前記第1閾値以上になる場合は、直前に処理したサブブロックの復号済み画素を参照することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像復号装置、画像復号方法及びプログラムに関する。
【背景技術】
【0002】
従来、ブロックをサブブロックに分割し、サブブロックごとにイントラ予測を順次実行する「Intra Sub-Partitions(ISP)」 という技術が知られている(例えば、非特許文献1及び非特許文献2参照)。
【先行技術文献】
【特許文献】
【0003】
【非特許文献】
【0004】
【非特許文献1】Versatile Video Coding (Draft 4)、JVET-M1001
【非特許文献2】CE3:Intra Sub-Partitions Coding Mode(Tests 1.1.1 and 1.1.2)、JVET-M0102
【非特許文献3】Jiang Jie、Guo Balong、Mo Wei、Fan Kefeng共著、Block-Based Parallel Intra Prediction Scheme for HEVC、Journal of Multimedia、Vol.7、No.4、2012年8月
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来のISPでは、あるサブブロックのイントラ予測を行う際に、同一ブロック内の直前に処理したサブブロックの復号画像を参照する。よって、各サブブロックの処理は、直列に実行する必要がある。特に、ハードウェアで実装した際に、かかる処理が処理速度のボトルネックとなる可能性があるという問題点があった。
【0006】
そこで、本発明は、上述の課題に鑑みてなされたものであり、ISPを適用するブロックであっても、各サブブロックの処理を並列に実行することができる画像復号装置、画像復号方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の第1の特徴は、画像復号装置であって、イントラ予測による予測信号を生成する予測信号生成部を備え、前記予測信号生成部は、イントラサブ分割を適用するブロックにおいて、前記ブロック内の全てのサブブロックの予測信号を生成する際に、前記ブロックに隣接する復号済みブロックの画素を参照することを要旨とする。
【0008】
本発明の第2の特徴は、画像復号装置であって、イントラ予測による予測信号を生成する予測信号生成部を備え、前記予測信号生成部は、イントラサブ分割を適用するブロックにおいて、分割後のサブブロックのサイズが、分割をしない場合の前記ブロックの最小サイズ以上になる場合にのみ、前記ブロックの分割を行うことを要旨とする。
【0009】
本発明の第3の特徴は、画像復号装置であって、イントラ予測に関する情報を復号するイントラ予測モード復号部を備え、前記イントラ予測モード復号部は、イントラサブ分割を適用するブロックの形状に応じて、前記イントラサブ分割の分割方向の復号を省略することを要旨とする。
【0010】
本発明の第4の特徴は、画像復号装置であって、前記イントラサブ分割を適用するブロックにおいて、分割後のサブブロックの形状を考慮してMPMリストを構築し、前記MPMリストを用いてイントラ予測モードを復号するイントラ予測モード復号部を備えることを要旨とする。
【0011】
本発明の第5の特徴は、画像復号装置であって、イントラサブ分割を適用するブロックにおいて、分割前のブロックの形状を考慮してMPMリストを構築し、前記MPMリストを用いてイントラ予測モードを復号するイントラ予測モード復号部を備えることを要旨とする。
【0012】
本発明の第6の特徴は、画像復号方法であって、イントラ予測による予測信号を生成する工程を有し、前記工程において、イントラサブ分割を適用するブロックにおいて、前記ブロック内の全てのサブブロックの予測信号を生成する際に、前記ブロックに隣接する復号済みブロックの画素を参照することを要旨とする。
【0013】
本発明の第7の特徴は、画像復号装置で用いるプログラムであって、コンピュータに、イントラ予測による予測信号を生成する工程を実行させ、前記工程において、イントラサブ分割を適用するブロックにおいて、前記ブロック内の全てのサブブロックの予測信号を生成する際に、前記ブロックに隣接する復号済みブロックの画素を参照することを要旨とする。
【発明の効果】
【0014】
本発明によれば、ISPを適用するブロックであっても、各サブブロックの処理を並列に実行することができる画像復号装置、画像復号方法及びプログラムを提供することができる。
【図面の簡単な説明】
【0015】
【
図1】一実施形態に係る画像処理システム10の構成の一例を示す図である。
【
図2】一実施形態に係る画像復号装置200の機能ブロックの一例を示す図である。
【
図3】一実施形態に係る画像復号装置200のイントラ予測部242の機能ブロックの一例について示す図である
【
図4】一実施形態に係る画像復号装置200のイントラ予測部242のイントラ予測モード復号部242Bの処理手順の一例を示すフローチャートである。
【
図5】一実施形態において用いられるサブブロックへの分割方法の一例について示す図である。
【
図6】一実施形態において用いられるISPにおける分割方向及び分割数の決定手順の一例を示すフローチャートである。
【
図7】一実施形態において用いられるISPにおける分割方向及び分割数の決定手順の一例を示すフローチャートである。
【
図8】一実施形態において用いられるMPMリストの構築方法の一例を示すフローチャートである。
【
図9】一実施形態において用いられるMPMリストの構築方法の一例を示すフローチャートである。
【
図10】一実施形態においてISPにおける垂直4分割が適用された場合のイントラ予測時の参照画素の配置を示す。
【
図11】一実施形態においてISPにおける垂直4分割が適用された場合のイントラ予測時の参照画素の配置の一例を示す。
【
図12】一実施形態に係る画像符号化装置100の機能ブロックの一例を示す図である。
【
図13】一実施形態に係る画像符号化装置100のイントラ予測部112の機能ブロックの一例について示す図である
【発明を実施するための形態】
【0016】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、以下の実施形態における構成要素は、適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、以下の実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【0017】
(第1実施形態)
以下、
図1~
図13を参照して、本発明の第1実施形態に係る画像処理システム10について説明する。
図1は、本実施形態に係る実施形態に係る画像処理システム10を示す図である。
【0018】
図1に示すように、画像処理システム10は、画像符号化装置100及び画像復号装置200を有する。
【0019】
画像符号化装置100は、入力画像信号を符号化することによって符号化データを生成するように構成されている。画像復号装置200は、符号化データを復号することによって出力画像信号を生成するように構成されている。
【0020】
ここで、かかる符号化データは、画像符号化装置100から画像復号装置200に対して伝送路を介して送信されてもよい。また、符号化データは、記憶媒体に格納された上で、画像符号化装置100から画像復号装置200に提供されてもよい。
【0021】
(画像復号装置200)
以下、
図2を参照して、本実施形態に係る画像復号装置200について説明する。
図2は、本実施形態に係る画像復号装置200の機能ブロックの一例について示す図である。
【0022】
図2に示すように、画像復号装置200は、復号部210と、逆変換・逆量子化部220と、加算器230と、インター予測部241と、イントラ予測部242と、インループフィルタ処理部250と、フレームバッファ260とを有する。
【0023】
復号部210は、画像符号化装置100によって生成される符号化データを復号し、係数レベル値を復号するように構成されている。
【0024】
ここで、例えば、復号は、係数レベル値の発生確率に基づいて異なる長さの符号を割り当てるエントロピー符号化されたデータの復号である。
【0025】
復号部210は、符号化データの復号処理によって制御データを取得するように構成されていてもよい。
【0026】
ここで、制御データは、符号化ブロック(CU:Coding Unit)サイズや、予測ブロック(PU:Prediction Unit)サイズや、変換ブロック(TU:Transform Unit)サイズ等のサイズデータを含んでもよい。
【0027】
逆変換・逆量子化部220は、復号部210から出力される係数レベル値の逆変換処理を行うように構成されている。ここで、逆変換・逆量子化部220は、逆変換処理に先立って、係数レベル値の逆量子化を行うように構成されていてもよい。
【0028】
加算器230は、逆変換・逆量子化部220から出力される予測残差信号に予測信号を加算してフィルタ処理前復号信号を生成し、フィルタ処理前復号信号をイントラ予測部242及びインループフィルタ処理部250に出力するように構成されている。
【0029】
ここで、フィルタ処理前復号信号は、イントラ予測部242で用いる参照ブロックを構成する。
【0030】
インター予測部241は、インター予測(フレーム間予測)によって予測信号を生成するように構成されている。
【0031】
具体的には、インター予測部241は、符号化データから復号した動きベクトルと参照フレームに含まれる参照信号に基づいて予測信号を予測ブロック毎に生成するように構成されている。インター予測部241は、予測信号を加算器230に出力するように構成されている。
【0032】
イントラ予測部242は、イントラ予測(フレーム内予測)によって予測信号を生成するように構成されている。
【0033】
具体的には、イントラ予測部242は、対象フレームに含まれる参照ブロックを特定し、特定された参照ブロックに基づいて予測信号を予測ブロック毎に生成するように構成されている。イントラ予測部242は、予測信号を加算器230に出力するように構成されている。
【0034】
インループフィルタ処理部250は、加算器230から出力されるフィルタ処理前復号信号に対してフィルタ処理を行うとともに、フィルタ処理後復号信号をフレームバッファ260に出力するように構成されている。
【0035】
ここで、例えば、フィルタ処理は、ブロック(符号化ブロック、予測ブロック、変換ブロック、あるいはそれらを分割したサブブロック)の境界部分で生じる歪みを減少するデブロッキングフィルタ処理である。
【0036】
フレームバッファ260は、インター予測部241で用いる参照フレームを蓄積するように構成されている。
【0037】
ここで、フィルタ処理後復号信号は、インター予測部241で用いる参照フレームを構成する。
【0038】
(イントラ予測部242)
以下、
図3を参照して、本実施形態に係るイントラ予測部242について説明する。
図3は、本実施形態に係る画像復号装置200のイントラ予測部242の機能ブロックの一例について示す図である。
【0039】
図3に示すように、イントラ予測部242は、イントラ予測モード復号部242Bと、予測信号生成部242Cとを有する。
【0040】
イントラ予測部242は、イントラ予測(フレーム内予測)によって予測信号を生成するように構成されている予測部の一例である。
【0041】
イントラ予測モード復号部242Bは、ブロックごとにイントラ予測を行うために必要な情報を復号する。
【0042】
図4は、イントラ予測モード復号部242Bの処理手順の一例を示すフローチャートである。以下、かかるフローチャートを用いて、イントラ予測モード復号部242Bの処理手順の一例について説明する。
【0043】
図4に示すように、ステップS41において、イントラ予測モード復号部242Bは、イントラ予測を行う場合に参照する画素位置に関する情報(ref_idx)を復号する。「ref_idx」が取り得る値は、「0」、「1」、「2」のいずれかである。
【0044】
「ref_idx=0」である場合、イントラ予測モード復号部242Bは、現在処理しているブロック(以下、処理対象ブロック)に隣接する復号済みブロックの画素のうち、処理対象ブロックとのブロック境界に位置する画素値を参照してイントラ予測を行う。
【0045】
「ref_idx=1」である場合、イントラ予測モード復号部242Bは、上述のブロック境界に位置する画素から、1行又は1列離れた画素を参照してイントラ予測を行う。
【0046】
「ref_idx=2」である場合、イントラ予測モード復号部242Bは、上述のブロック境界に位置する画素から、3行又は3列離れた画素を参照してイントラ予測を行う。
【0047】
ステップS42において、イントラ予測モード復号部242Bは、所定条件1を満足しているかどうかを判定する。
【0048】
ここで、所定条件1は、「ref_idx」の値が「0」であることという条件を含んでもよい。また、所定条件1は、処理対象ブロックのサイズ(ブロック内に含まれる画素数)が予め定めた画素数以上であることという条件を含んでもよい。かかる画素数は、例えば、32画素と設定することができる。また、所定条件1は、処理対象ブロックの垂直方向のサイズ(画素数)が8画素以上であることという条件を含んでもよい。さらに、所定条件1は、処理対象ブロックの水平方向のサイズが8画素以上であることという条件を含んでもよい。
【0049】
所定条件1が満たされている場合は、本処理は、ステップS43へ進み、所定条件1が満たされていない場合は、本処理は、ステップS46へ進む。
【0050】
ステップS43において、イントラ予測モード復号部242Bは、「ISP mode flag」を復号する。
【0051】
イントラ予測モード復号部242Bは、「ISP mode flag=0」である場合、処理対象ブロックにISPを適用せず、「ISP mode flag=1」である場合、処理対象ブロックにISPを適用する。
【0052】
ステップS44において、イントラ予測モード復号部242Bは、所定条件2を満足しているかどうかを判定する。所定条件2が満たされている場合は、本処理は、ステップS45へ進み、所定条件2が満たされていない場合は、本処理は、ステップS46へ進む。
ここで、所定条件2は、「ISP mode flag」の値が「1」であることという条件を含んでもよい。さらに、所定条件2は、処理対象ブロックの形状が横長或いは縦長でないことという条件を含んでもよい。
【0053】
なお、「横長」というのは、例えば、処理対象ブロックの水平方向のサイズ(画素数)が垂直方向のサイズ(画素数)の2倍以上であることと定義することができる。同様に、「縦長」というのは、例えば、処理対象ブロックの垂直方向のサイズが水平方向のサイズの2倍以上であることと定義することができる。
【0054】
また、例えば、「横長」は、処理対象ブロックの水平方向のサイズが垂直方向のサイズより大きいことと定義し、「縦長」は、処理対象ブロックの垂直方向のサイズが水平方向のサイズより大きいことと定義することもできる。
【0055】
所定条件2が、上述の条件を含む場合、イントラ予測モード復号部242Bは、横長或いは縦長であると判定されたブロックについては、ステップS45における「ISP split flag」の復号を省略する。かかる場合、イントラ予測モード復号部242Bは、横長のブロックについては水平分割であり、縦長のブロックについては垂直分割であるというように、ブロック形状に応じて、ISPの分割方向を決定することができる。
【0056】
ステップS45において、イントラ予測モード復号部242Bは、「ISP split flag」を復号する。
【0057】
ここで、「ISP split flag=0」である場合、ISPにおける分割方向が水平方向であること(すなわち、水平分割)を示し、「ISP split flag=1」である場合、ISPにおける分割方向が垂直方向であること(すなわち、垂直分割)を示す。
【0058】
ISPは、処理対象ブロックを複数のサブブロックに分割して、サブブロックごとにイントラ予測及び復号画像の生成を行う技術である。
【0059】
図5に、かかる分割方法の一例について示す。
図5に示すように、本実施形態では、水平分割の場合、水平方向の画素数が分割前と同じで、垂直方向の画素数が分割前の1/2又は1/4となるようなサブブロックに分割される(水平2分割又は水平4分割)。同様に、垂直分割の場合、垂直方向の画素数が分割前と同じで、水平方向の画素数が分割前の1/2又は1/4となるようなサブブロックに分割される(垂直2分割又は垂直4分割)。
【0060】
ここで、
図6を参照して、本実施形態で用いられるISPにおける分割方向及び分割数の決定手順について説明する。
図6は、本実施形態で用いられるISPにおける分割方向及び分割数の決定手順の一例を示すフローチャートである。
【0061】
図6に示すように、ステップS61において、ステップS45で復号した「ISP split flag」に基づいて、垂直分割の場合は、本手順は、ステップS62に進み、水平分割の場合は、本手順は、ステップS63に進む。
【0062】
ステップS62において、処理対象ブロックのブロックサイズを判定する。ここで、例えば、ブロックサイズは、ブロック内の画素数と定義できる。
【0063】
所定条件1に処理対象ブロックのサイズが32画素以上であるという条件が含まれている場合、ステップS62において、例えば、ブロックサイズが32画素の場合は「垂直2分割」であり、ブロックサイズが32画素より大きい場合は「垂直4分割」であるというように、ISPにおける分割数を決定することができる。
【0064】
同様に、ステップS63において、例えば、ブロックサイズが32画素の場合は「水平2分割」であり、ブロックサイズが32画素より大きい場合は「水平4分割」であるというように、ISPにおける分割数を決定することができる。
【0065】
また、
図7に示す手順で、ISPにおける分割方向及び分割数を決定することもできる。なお、
図7は、所定条件1に処理対象ブロックの垂直方向のサイズが8画素以上であることという条件及び処理対象ブロックの水平方向のサイズが8画素以上であることという条件の両方を含んだ場合の決定手順の一例である。
【0066】
図7に示すように、ステップS71において、ステップS61と同様に、垂直分割の場合は、本手順は、ステップS72に進み、水平分割の場合は、本手順は、ステップS73に進む。
【0067】
ステップS72において、処理対象ブロックの水平方向のサイズが8画素である場合は「垂直2分割」であり、処理対象ブロックの水平方向のサイズが8画素より大きい場合は「垂直4分割」であるというように、ISPにおける分割数を決定することができる。
【0068】
ここで、ブロックの水平方向及び垂直方向のサイズとして2のべき乗の画素数のサイズのみを定義している場合、上述のサイズが8画素より大きい場合というのは、かかるサイズが16画素以上である場合と等価になる。
【0069】
同様に、ステップS73において、処理対象ブロックの垂直方向のサイズが8画素である場合は「水平2分割」であり、処理対象ブロックの垂直方向のサイズが8画素より大きい場合は「水平4分割」であるというように、ISPにおける分割数を決定することができる。
【0070】
図7に示す手順を採用することで、分割後のサブブロックの水平方向及び垂直方向のサイズが必ず4画素以上になるように分割することができる。また、ISPを使わない場合の水平方向及び垂直方向のサイズの最小値を4画素とすると、上述のような処理とすることでサブブロックのサイズが、ISPを使わない場合の最小サイズ(分割しない場合のブロックの最小サイズ)以上となることが保証される。この結果、ISPを用いた場合の処理の複雑度を、ISPを用いない場合の処理の複雑度以下に抑えることができる。
【0071】
なお、
図7に示す手順は、あくまで一例であり、分割後のサブブロックのサイズが、分割しない場合の最小サイズ以上に必ずなるような分割方法になっていれば、同様の効果を得ることができる。
【0072】
上述のように、イントラ予測モード復号部242Bが、ISPの分割方向を示す「ISP split flag」を復号した後、本処理は、ステップS46に進む。
【0073】
ステップS46において、イントラ予測モード復号部242Bは、所定条件3を満足するかどうかを判定する。
【0074】
ここで、所定条件3には、「ISP mode flag」の値が「0」であることという条件を含んでもよい。なお、イントラ予測モード復号部242Bは、「ISP mode flag」を復号しない場合、「ISP mode flag」の値が「0」であるとみなすことができる。
【0075】
なお、所定条件3が満たされている場合、本処理は、ステップS47に進み、所定条件3が満たされない場合、本処理は、はステップS48に進む。
【0076】
ステップS47において、イントラ予測モード復号部242Bは、「MPM flag」を復号する。
【0077】
ここで、「MPM flag=1」である場合、処理対象ブロックのイントラ予測モードが、後述するMPMリスト内に存在する予測モードのいずれかであることを意味する。
【0078】
一方、「MPM flag=0」である場合、MPMリスト内に存在しない予測モードを処理対象ブロックに適用することを意味する。
【0079】
なお、「MPM flag」が復号されなかった場合、すなわち、所定条件3が満たされなかった場合は、例えば、イントラ予測モード復号部242Bは、「MPM flag」の値が「1」であるとみなすことができる。
【0080】
ステップS48において、イントラ予測モード復号部242Bは、これまで復号した情報を元に、イントラ予測モードを復号する。イントラ予測モードには、例えば、非特許文献1に記載のように、DCモードやPlanarモードや方向性予測モード等がある。
【0081】
イントラ予測モード復号部242Bは、イントラ予測モードを復号するには、初めにMPMリストを作成する。MPMリストの作成方法は、非特許文献1で開示されているような公知の方法を用いることができる。また、MPMリストの作成方法は、上述の「ISP mode flag」の値によって作成方法を切り替えても良い。
【0082】
図8は、「ISP mode flag」の値が「1」である場合のMPMリストの作成方法の一例を示すフローチャートである。
図8に示すように、予め分割方向に対応したデフォルトモードを定義しておく。
【0083】
次に、イントラ予測モード復号部242Bは、処理対象ブロックに隣接する復号済みブロックA及びBの2つのブロックで使用されたイントラ予測モードを用いて、MPMリストを構築する。
【0084】
ここで、復号済みブロックAは、処理対象ブロックの上側の隣接ブロック、復号済みブロックBは、処理対象ブロックの左側の隣接ブロックである。厳密な復号済みブロックA及びBの決定方法については、非特許文献1に記載の方法を用いることができる。
【0085】
図8は、復号済みブロックA及びBで使用されていたイントラ予測モードが、いずれも方向性予測で且つ予測方向が異なっていた場合のMPMリストの構築手順の一例である。
【0086】
復号済みブロックAで使用されていた予測方向の方が、復号済みブロックABで使用されていた予測方向よりもデフォルトモードとの角度の差が小さい場合、イントラ予測モード復号部242Bは、MPMリストの0番目に復号済みブロックAで使用されていた予測モードを設定し、MPMリストの1番目に復号済みブロックBで使用されていた予測モードを設定する。
【0087】
以降、イントラ予測モード復号部242Bは、MPMリストの2番目及び3番目には、復号済みブロックAの予測モードとわずかに角度が異なる予測モードを設定し、MPMリストの4番目及び5番目には、復号済みブロックBの予測モードとわずかに角度が異なる予測モードを設定する。
【0088】
ここで、
図8におけるAやBは、予測方向の角度に対応した数値で定義されており、数値が大きくなるほど角度が大きくなり、数値が小さくなるほど角度が小さくなる。
【0089】
同様に、復号済みブロックBで使用されていた予測方向の方が、復号済みブロックAで使用されていた予測方向よりデフォルトモードとの角度の差が小さい場合、イントラ予測モード復号部242Bは、MPMリストの0番目に、復号済みブロックBで使用されていた予測モードを設定し、MPMリストの1番目に、復号済みブロックAで使用されていた予測モードを設定する。
【0090】
以降、イントラ予測モード復号部242Bは、MPMリストの2番目及び3番目には、復号済みブロックBの予測モードとわずかに角度が異なる予測モードを設定し、MPMリストの4番目及び5番目には、復号済みブロックAの予測モードとわずかに角度が異なる予測モードを設定する。
【0091】
MPMリストのインデックス(Idx)の値が小さい予測モードの方が少ない符号量で符号化できるように符号語が割り当てられている場合、このようにデフォルトモードと角度の差が小さいモードのインデックスが小さくなるように設定することで、分割方向に適した予測方向の予測モードをより少ない符号量で表現できるため、符号化効率が向上する。
【0092】
なお、ここで説明したMPMリストの構築方法は、あくまで一例である。分割方向を考慮して、より適切と考えられるモードのインデックスが小さくなるようなMPMリストの構築方法であれば、同様の効果を得ることができる。
【0093】
図8の例では、デフォルトモードの設定について、ISPの分割方法によって定義したが、
図9に例を示すように、分割後のサブブロックの形状を元に定義することもできる。
【0094】
図9に示すように、分割後のサブブロックの形状が、横長、縦長及びそれ以外のいずれなのかによって、デフォルトモードを定義し、デフォルトモードによって、MPMリストの構築方法を切り替えることができる。
【0095】
ここで、横長は、例えば、処理対象ブロックの水平方向のサイズ(画素数)が垂直方向のサイズ(画素数)の2倍以上であることと定義することができる。同様に、縦長は、例えば、処理対象ブロックの垂直方向のサイズが水平方向のサイズの2倍以上であることと定義することができる。
また、例えば、横長は、処理対象ブロックの水平方向のサイズが垂直方向のサイズより大きいことと定義し、縦長は、処理対象ブロックの垂直方向のサイズが水平方向のサイズより大きいことと定義することもできる。
【0096】
この時、水平方向及び垂直方向のサイズが等しい場合を縦長か横長のどちらかに含めることで、デフォルトモードの定義を
図7の例と同様に2パターンにすることもできる。
【0097】
また、
図9では、分割後のブロック形状に基づいてデフォルトモードを定義したが、分割前のブロック形状を用いてデフォルトモードを定義した場合であっても、同様の処理が可能である。
【0098】
上述のように、イントラ予測モード復号部242Bが「MPM flag」を復号した後、本処理は、ステップS48に進む。
【0099】
ステップS48において、「MPM flag=1」である場合は、イントラ予測モード復号部242Bは、処理対象ブロックで使用する予測モードのインデックスを復号し、上述のように、構築したMPMリストの中で復号したインデックスに対応する予測モードを、処理対象ブロックの予測モードに決定する。
【0100】
一方、ステップS48において、「MPM flag=0」である場合は、イントラ予測モード復号部242Bは、上述のMPMリストに含まれていない予測モードのうち、どの予測モードを用いるかという情報を復号し、復号した予測モードを、処理対象ブロックの予測モードに決定する。
【0101】
以上の手順で、処理対象ブロックで用いる予測モードを復号することができたため、本処理は、ステップS49に進み終了する。
【0102】
図3に示す予測信号生成部242Cは、イントラ予測モード復号部242Bで復号された処理対象ブロックの予測モードに基づいて、予測信号を生成するように構成されている。ここで、予測信号の生成方法は、例えば、非特許文献1に記載の公知の方法を用いることができる。
【0103】
図10は、ISPにおける垂直4分割が適用された場合のイントラ予測時の参照画素の配置の一例を示す。
【0104】
ISPにおいて、ブロックTが垂直方向に分割される場合(垂直分割が行われる場合)、左側のサブブロック#1から、順次、予測処理及び復号画像生成処理が行われる。
【0105】
図10のように、左から2番目のサブブロック#2に対するイントラ予測が行われる場合は、サブブロック#2の上側に隣接する復号済みブロックAの画素X1と、サブブロック#2の左側に隣接するサブブロック#1の復号済み画素Y1が参照される。
【0106】
図10に示す参照画素の配置は、あくまで一例である。例えば、垂直分割においてサブブロック#2に対するイントラ予測が行われる際に、サブブロック#1内の復号済み画素であれば、
図10に示す配置の画素Y1以外の画素を参照してもよい。
【0107】
同様に、ISPにおいて、ブロックが水平方向に分割される場合(水平分割が行われる場合)、上側のサブブロックから、順次、予測処理及び復号画像生成処理が行われる。
【0108】
ここで、各サブブロック#1~#4に対するイントラ予測が行われる場合の参照画素の位置は、例えば、
図11のように、サブブロック#1~#4(ブロックT)の上側に隣接する復号済みブロックAの画素X2と、サブブロック#1~#4(ブロックT)の左側に隣接する復号済みブロックB/Cの画素Y2とすることもできる。
【0109】
すなわち、2番目以降のサブブロック#2~#4に対するイントラ予測についても、処理対象ブロックT内のサブブロック#1~#3の復号後の画素は参照しないとしてもよい。
【0110】
図11に示す画素配置は、あくまで一例である。処理対象ブロックTに隣接する復号済みブロックの画素であれば、
図11に示す配置の画素X2/Y2以外の画素を参照してもよい。
【0111】
図11は、垂直分割が行われる場合の例について示しているが、水平分割が行われる場合も同様の参照画素の配置とすることができる。このように、当該ブロック内の復号後の画素を参照しないようにすることで、各サブブロックの予測処理及び復号画像生成処理を並列で実行することができる。
【0112】
本実施形態では、同一ブロック内の各サブブロックの予測モードは共通である。よって、
図11に示す参照画素の配置とする場合の予測信号の生成処理は、処理対象ブロックTをサブブロックに分割せず、通常のイントラ予測の生成処理と同一にすることもできる。
【0113】
よって、
図11に示す参照画素の配置を採ることで、ISPの適否に関わらず、予測信号の生成処理をブロック単位で実行するという構成も実現可能である。また、かかる場合、ISP適用ブロックにおける復号画像の生成処理(フィルタ処理前復号信号の生成処理)は、サブブロックごとに並列に実行することができる。
【0114】
また、上述の参照画素の配置を、ブロックサイズによって切り替えることも可能である。例えば、サブブロックの幅及び高さが予め定めた閾値未満か否かによって、参照画素の配置を切り替えることができる。
【0115】
例えば、
図6に示すように、サブブロックの幅が4画素未満になる場合は、
図11に示す参照画素の配置とし、サブブロックの幅が4画素以上になる場合は、
図10に示す参照画素の配置とすることができる。
【0116】
同様に、例えば、サブブロックの高さが4画素未満になる場合は、
図11に示す参照画素の配置とし、サブブロックの高さが4画素以上になる場合は、
図10に示す参照画素の配置とすることができる。
【0117】
すなわち、例えば、予測信号生成部242Cは、サブブロック#1~#4のサイズが、第1閾値未満になる場合は、処理対象ブロックT内の全てのサブブロック#1~#4の予測信号を生成する際に、
図11に示すように、処理対象ブロックTに隣接する復号済みブロックA~Cの画素(例えば、参照画素X2/Y2)を参照するように構成されていてもよい。
【0118】
一方、例えば、予測信号生成部242Cは、サブブロック#2のサイズが、第1閾値以上になる場合は、サブブロック#2の予測信号を生成する際に、
図10に示すように、直前に処理したサブブロック#1の復号済み画素(例えば、参照画素Y1)を参照するように構成されていてもよい。
【0119】
また、予測信号生成部242Cは、サブブロックの幅又は高さの少なくともいずれかが、第1閾値未満になる場合は、処理対象ブロックT内の全てのサブブロック#1~#4の予測信号を生成する際に、
図11に示すように、処理対象ブロックTに隣接する復号済みブロックA~Cの画素(例えば、参照画素X2/Y2)を参照するように構成されていてもよい。
【0120】
一方、例えば、予測信号生成部242Cは、サブブロック#2の幅及び高さの両方が、第1閾値以上になる場合は、サブブロック#2の予測信号を生成する際に、
図10に示すように、直前に処理したサブブロック#1の復号済み画素(例えば、参照画素Y1)を参照するように構成されていてもよい。
【0121】
さらに、予測信号生成部242Cは、サブブロック#1~#4の幅が、第1閾値未満になる場合は、処理対象ブロックT内の全てのサブブロック#1~#4の予測信号を生成する際に、
図11に示すように、処理対象ブロックTに隣接する復号済みブロックA~Cの画素(例えば、参照画素X2/Y2)を参照するように構成されていてもよい。
【0122】
一方、例えば、予測信号生成部242Cは、サブブロック#2の幅が、第1閾値以上になる場合は、サブブロック#2の予測信号を生成する際に、
図10に示すように、直前に処理したサブブロック#1の復号済み画素(例えば、参照画素Y1)を参照するように構成されていてもよい。
【0123】
このように、ブロックサイズによって参照画素の配置を切り替えることで、例えば、小さなサブブロックでは並列処理可能な参照画素の配置として実装難易度の増加を防ぎ、大きなサブブロックでは直前のサブブロックの復号画素を参照することで符号化効率を改善できる。
【0124】
イントラ予測の並列処理技術については、例えば、特許文献1や非特許文献3でも開示されている。これらの非特許文献では、本実施形態に係るサブブロックに相当する処理単位において、それぞれが異なる予測モードである場合をサポートしている。
【0125】
一方、本実施形態では、同一ブロック内の各サブブロックの予測モードは、共通である。このような構成とすることで、サブブロックに分割した場合とサブブロックに分割しなかった場合とで、予測値の生成処理が全く同じ処理となる。よって、分割の有り無しで異なる処理を実装する必要がなくなるため、特にハードウェアにおける実装の難易度の増加を防ぐことができる。
【0126】
(画像符号化装置100)
以下、
図12を参照して、本実施形態に係る画像符号化装置100について説明する。
図12は、本実施形態に係る画像符号化装置100の機能ブロックの一例について示す図である。
【0127】
図12に示すように、画像符号化装置100は、インター予測部111と、イントラ予測部112と、減算器121と、加算器122と、変換・量子化部131と、逆変換・逆量子化部132と、符号化部140と、インループフィルタ処理部150と、フレームバッファ160とを有する。
【0128】
インター予測部111は、インター予測部241と同様に、インター予測(フレーム間予測)によって予測信号を生成するように構成されている。
【0129】
具体的には、インター予測部111は、符号化対象のフレーム(以下、対象フレーム)とフレームバッファ160に格納される参照フレームとの比較によって、参照フレームに含まれる参照ブロックを特定し、特定された参照ブロックに対する動きベクトルを決定するように構成されている。
【0130】
また、インター予測部111は、参照ブロック及び動きベクトルに基づいて予測ブロックに含まれる予測信号を予測ブロック毎に生成するように構成されている。インター予測部111は、予測信号を減算器121及び加算器122に出力するように構成されている。ここで、参照フレームは、対象フレームとは異なるフレームである。
【0131】
イントラ予測部112は、イントラ予測部242と同様に、イントラ予測(フレーム内予測)によって予測信号を生成するように構成されている。
【0132】
具体的には、イントラ予測部112は、対象フレームに含まれる参照ブロックを特定し、特定された参照ブロックに基づいて予測信号を予測ブロック毎に生成するように構成されている。また、イントラ予測部112は、予測信号を減算器121及び加算器122に出力するように構成されている。
【0133】
ここで、参照ブロックは、予測対象のブロック(以下、対象ブロック)について参照されるブロックである。例えば、参照ブロックは、対象ブロックに隣接するブロックである。
【0134】
減算器121は、入力画像信号から予測信号を減算し、予測残差信号を変換・量子化部131に出力するように構成されている。ここで、減算器121は、イントラ予測又はインター予測によって生成される予測信号と入力画像信号との差分である予測残差信号を生成するように構成されている。
【0135】
加算器122は、逆変換・逆量子化部132から出力される予測残差信号に予測信号を加算してフィルタ処理前復号信号を生成し、かかるフィルタ処理前復号信号をイントラ予測部112及びインループフィルタ処理部150に出力するように構成されている。
【0136】
ここで、フィルタ処理前復号信号は、イントラ予測部112で用いる参照ブロックを構成する。
【0137】
変換・量子化部131は、予測残差信号の変換処理を行うとともに、係数レベル値を取得するように構成されている。さらに、変換・量子化部131は、係数レベル値の量子化を行うように構成されていてもよい。
【0138】
ここで、変換処理は、予測残差信号を周波数成分信号に変換する処理である。かかる変換処理では、離散コサイン変換(DCT;Discrete Cosine Transform)に対応する基底パターン(変換行列)が用いられてもよく、離散サイン変換(DST;Discrete Sine Transform)に対応する基底パターン(変換行列)が用いられてもよい。
【0139】
逆変換・逆量子化部132は、変換・量子化部131から出力される係数レベル値の逆変換処理を行うように構成されている。ここで、逆変換・逆量子化部132は、逆変換処理に先立って、係数レベル値の逆量子化を行うように構成されていてもよい。
【0140】
ここで、逆変換処理及び逆量子化は、変換・量子化部131で行われる変換処理及び量子化とは逆の手順で行われる。
【0141】
符号化部140は、変換・量子化部131から出力された係数レベル値を符号化し、符号化データを出力するように構成されている。
【0142】
ここで、例えば、符号化は、係数レベル値の発生確率に基づいて異なる長さの符号を割り当てるエントロピー符号化である。
【0143】
また、符号化部140は、係数レベル値に加えて、復号処理で用いる制御データを符号化するように構成されている。
【0144】
なお、上述したように、制御データは、符号化ブロックサイズや予測ブロックサイズや変換ブロックサイズ等のサイズデータを含んでもよい。
【0145】
インループフィルタ処理部150は、インループフィルタ処理部250と同様に、加算器122から出力されるフィルタ処理前復号信号に対してフィルタ処理を行うとともに、フィルタ処理後復号信号をフレームバッファ160に出力するように構成されている。
【0146】
ここで、例えば、フィルタ処理は、ブロック(符号化ブロック、予測ブロック又は変換ブロック)の境界部分で生じる歪みを減少するデブロッキングフィルタ処理である。
【0147】
フレームバッファ160は、インター予測部111で用いる参照フレームを蓄積するように構成されている。
【0148】
ここで、フィルタ処理後復号信号は、インター予測部111で用いる参照フレームを構成する。
【0149】
(イントラ予測部112)
以下、
図13を参照して、本実施形態に係るイントラ予測部112について説明する。
図13は、本実施形態に係る画像符号化装置112のイントラ予測部112の機能ブロックの一例について示す図である。
【0150】
図13に示すように、イントラ予測部112は、イントラ予測モード決定部112Aと、イントラ予測モード符号化部112Bと、予測信号生成部112Cとを有する。
【0151】
イントラ予測部112は、イントラ予測(フレーム内予測)によって予測信号を生成するように構成されている予測部の一例である。
【0152】
イントラ予測モード決定部112Aは、当該ブロックのイントラ予測モードやISPの適用有無等、後段のイントラ予測モード符号化部112Bで符号化する情報を決定するように構成されている。決定の方法は、公知の方法を用いることが可能であるため詳細は省略する。
【0153】
イントラ予測モード符号化部112Bは、対象ブロックの予測モードを符号化するように構成されている。処理内容は、イントラ予測モード復号部242Bと同様の処理となる。具体的には、例えば、
図4に示すイントラ予測モード復号部242Bの処理フローチャートのうち「復号」の部分を「符号化」に変更した処理となる。
【0154】
予測信号生成部112Cは、イントラ予測モード112Bで符号化した予測モードにしたがって、当該ブロックの予測信号を生成するように構成されている。予測信号の生成方法は、予測信号生成部242Cと同一である。
【0155】
本実施形態に係る画像処理システム1によれば、ISPを適用するブロックであっても、イントラ予測には既に符号化(復号)済みの隣接ブロックの画素を参照することができるため、各サブブロックの処理を並列に実行することができ、ハードウェアにおける1ブロックの処理に必要なサイクル数を削減することができる。
【0156】
上述の画像符号化装置100及び画像復号装置200は、コンピュータに各機能(各工程)を実行させるプログラムであって実現されていてもよい。
【0157】
なお、上記の各実施形態では、本発明を画像符号化装置100及び画像復号装置200への適用を例にして説明したが、本発明は、これのみに限定されるものではなく、画像符号化装置100及び画像復号装置200の各機能を備えた画像符号化/復号システムにも同様に適用できる。
【符号の説明】
【0158】
10…画像処理システム
100…画像符号化装置
111、241…インター予測部
112、242…イントラ予測部
112A…イントラ予測モード決定部
112B…イントラ予測モード符号化部
112C、242C…予測信号生成部
121…減算器
122、230…加算器
131…変換・量子化部
132、220…逆変換・逆量子化部
140…符号化部
150、250…インループフィルタ処理部
160、260…フレームバッファ
200…画像復号装置
210…復号部
242B…イントラ予測モード復号部