(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022177180
(43)【公開日】2022-11-30
(54)【発明の名称】画像復号装置、画像復号方法及びプログラム
(51)【国際特許分類】
H04N 19/124 20140101AFI20221122BHJP
H04N 19/176 20140101ALI20221122BHJP
H04N 19/70 20140101ALI20221122BHJP
H04N 19/186 20140101ALI20221122BHJP
【FI】
H04N19/124
H04N19/176
H04N19/70
H04N19/186
【審査請求】有
【請求項の数】3
【出願形態】OL
(21)【出願番号】P 2022148627
(22)【出願日】2022-09-16
(62)【分割の表示】P 2022062615の分割
【原出願日】2019-12-26
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和元年度、総務省、「多様な用途、環境下での高精細映像の活用に資する次世代映像伝送・通信技術の研究開発」委託事業、産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】110001564
【氏名又は名称】フェリシテ弁理士法人
(72)【発明者】
【氏名】海野 恭平
(72)【発明者】
【氏名】河村 圭
(72)【発明者】
【氏名】内藤 整
(57)【要約】 (修正有)
【課題】量子化パラメータの値が常に「0」以上となることを担保する画像復号装置、画像復号方法及びプログラムを提供する。
【解決手段】画像復号装置において、逆変換・逆量子化部220は、対象ブロックの復号された量子化パラメータの値を前記対象ブロックに適応色変換が適用されているか否かによって補正した後に、前記補正後の量子化パラメータの値及び「0」以上の予め定めた値のうちの大きい方の値を前記対象ブロックの量子化パラメータとする量子化パラメータ導出部220Aを具備する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
画像復号装置であって、
量子化パラメータ導出部を具備し、
前記量子化パラメータ導出部は、
対象ブロックに変換スキップモードが適用されている場合に、前記対象ブロックに適応色変換が適用されているか否かに関わらず、前記対象ブロックの量子化パラメータの値を前記変換スキップモード適用時の量子化パラメータの最小値以上とし、前記変換スキップモード適用時の量子化パラメータの最小値を「4」以上とするように構成されており、
前記対象ブロックに前記変換スキップモードが適用されていない場合に、前記対象ブロックの復号された量子化パラメータの値を前記対象ブロックに前記適応色変換が適用されているか否かによって補正した後に、前記補正後の量子化パラメータの値及び「0」のうちの大きい方の値を前記対象ブロックの量子化パラメータとするように構成されていることを特徴とする画像復号装置。
【請求項2】
対象ブロックに変換スキップモードが適用されている場合に、前記対象ブロックに適応色変換が適用されているか否かに関わらず、前記対象ブロックの量子化パラメータの値を前記変換スキップモード適用時の量子化パラメータの最小値以上とし、前記変換スキップモード適用時の量子化パラメータの最小値を「4」以上とする工程と、
前記対象ブロックに前記変換スキップモードが適用されていない場合に、前記対象ブロックの復号された量子化パラメータの値を前記対象ブロックに前記適応色変換が適用されているか否かによって補正した後に、前記補正後の量子化パラメータの値及び「0」のうちの大きい方の値を前記対象ブロックの量子化パラメータとする工程とを有することを特徴とする画像復号方法。
【請求項3】
画像復号装置で用いるプログラムであって、コンピュータに、
対象ブロックに変換スキップモードが適用されている場合に、前記対象ブロックに適応色変換が適用されているか否かに関わらず、前記対象ブロックの量子化パラメータの値を前記変換スキップモード適用時の量子化パラメータの最小値以上とし、前記変換スキップモード適用時の量子化パラメータの最小値を「4」以上とする工程と、
前記対象ブロックに前記変換スキップモードが適用されていない場合に、前記対象ブロックの復号された量子化パラメータの値を前記対象ブロックに前記適応色変換が適用されているか否かによって補正した後に、前記補正後の量子化パラメータの値及び「0」のうちの大きい方の値を前記対象ブロックの量子化パラメータとする工程とを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像復号装置、画像復号方法及びプログラムに関する。
【背景技術】
【0002】
非特許文献1には、逆量子化の際に用いる量子化パラメータの復号方法が開示されている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Versatile Video Coding (Draft 7)、JVET-N2001
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、本出願の発明者は、非特許文献1では、復号した量子化パラメータの値が負の値になってしまう可能性があるという問題点を発見した。
【0005】
そこで、本発明は、上述の課題に鑑みてなされたものであり、量子化パラメータの値が常に「0」以上となることを担保することができる画像復号装置、画像復号方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の第1の特徴は、画像復号装置であって、対象ブロックの復号された量子化パラメータの値を前記対象ブロックに適応色変換が適用されているか否かによって補正した後に、前記補正後の量子化パラメータの値及び「0」以上の予め定めた値のうちの大きい方の値を前記対象ブロックの量子化パラメータとするように構成されている量子化パラメータ導出部を具備することを要旨とする。
【0007】
本発明の第2の特徴は、画像復号方法であって、対象ブロックの復号された量子化パラメータの値を前記対象ブロックに適応色変換が適用されているか否かによって補正した後に、前記補正後の量子化パラメータの値及び「0」以上の予め定めた値のうちの大きい方の値を前記対象ブロックの量子化パラメータとする工程を有することを要旨とする。
【0008】
本発明の第3の特徴は、画像復号装置で用いるプログラムであって、コンピュータに、対象ブロックの復号された量子化パラメータの値を前記対象ブロックに適応色変換が適用されているか否かによって補正した後に、前記補正後の量子化パラメータの値及び「0」以上の予め定めた値のうちの大きい方の値を前記対象ブロックの量子化パラメータとする工程を実行させることを要旨とする。
【発明の効果】
【0009】
本発明によれば、量子化パラメータの値が常に「0」以上となることを担保することができる画像復号装置、画像復号方法及びプログラムを提供することができる。
【図面の簡単な説明】
【0010】
【
図1】一実施形態に係る画像処理システム10の構成の一例を示す図である。
【
図2】一実施形態に係る画像復号装置200の機能ブロックの一例を示す図である。
【
図3】一実施形態に係る画像復号装置200の逆変換・逆量子化部220の機能ブロックの一例を示す図である。
【
図4】一実施形態に係る画像復号装置200の逆変換・逆量子化部220の量子化パラメータ導出部220Aの処理フローの一例を示すフローチャートである。
【
図5】一実施形態に係る画像復号装置200のイントラ予測部240の機能ブロックの一例を示す図である。
【
図6】一実施形態に係る画像復号装置200のイントラ予測部240のイントラ予測モード復号部242Bによる色差信号のイントラ予測モードの復号処理フローの一例を示すフローチャートである。
【
図7】一実施形態に係る画像復号装置200のイントラ予測部240の予測信号生成部242Cによる輝度CU又は色差CUにBDPCMを適用する場合の処理フローの一例を示すフローチャートである。
【
図8】一実施形態に係る画像復号装置200のインループフィルタ処理部250の機能ブロックの一例を示す図である。
【
図9】一実施形態に係る画像復号装置200のインループフィルタ処理部250のデブロッキングフィルタ部250Aの機能ブロックの一例を示す図である。
【
図10】一実施形態に係る画像復号装置200のインループフィルタ処理部250のデブロッキングフィルタ部250Aの境界強度判定部253A/253Bによって境界強度の判定方法の一例を説明するための図である。
【
図11】TPMやGEOの重み係数について説明するための図である。
【
図12】一実施形態に係る画像復号装置200のインループフィルタ処理部250のフィルタ処理部255A/255Bの処理フローの一例を示すフローチャートである。
【
図13】一実施形態に係る画像復号装置200のインループフィルタ処理部250の適応ループフィルタ部250Cの機能ブロックの一例を示す図である。
【
図14】一実施形態に係る画像復号装置200のインループフィルタ処理部250の適応ループフィルタ部250CのCb CC-ALF部257Aでのフィルタリング処理と境界部分での処理の一例を示す図である。
【
図15】一実施形態に係る画像復号装置200のインループフィルタ処理部250の適応ループフィルタ部250CのCb CC-ALF部257Aでのフィルタリング処理と境界部分での処理の一例を示す図である。
【
図16】一実施形態に係る画像符号化装置100の機能ブロックの一例を示す図である。
【
図17】一実施形態に係る画像符号化装置100のイントラ予測部112の機能ブロックの一例を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、以下の実施形態における構成要素は、適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、以下の実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【0012】
(第1実施形態)
以下、
図1~
図17を参照して、本発明の第1実施形態に係る画像処理システム10について説明する。
図1は、本実施形態に係る実施形態に係る画像処理システム10を示す図である。
【0013】
図1に示すように、画像処理システム10は、画像符号化装置100及び画像復号装置200を有する。
【0014】
画像符号化装置100は、入力画像信号を符号化することによって符号化データを生成するように構成されている。画像復号装置200は、符号化データを復号することによって出力画像信号を生成するように構成されている。
【0015】
ここで、かかる符号化データは、画像符号化装置100から画像復号装置200に対して伝送路を介して送信されてもよい。また、符号化データは、記憶媒体に格納された上で、画像符号化装置100から画像復号装置200に提供されてもよい。
【0016】
(画像復号装置200)
以下、
図2を参照して、本実施形態に係る画像復号装置200について説明する。
図2は、本実施形態に係る画像復号装置200の機能ブロックの一例について示す図である。
【0017】
図2に示すように、画像復号装置200は、復号部210と、逆変換・逆量子化部220と、加算器230と、インター予測部241と、イントラ予測部242と、インループフィルタ処理部250と、フレームバッファ260とを有する。
【0018】
復号部210は、画像符号化装置100によって生成される符号化データを復号し、係数レベル値を復号するように構成されている。
【0019】
ここで、例えば、復号は、係数レベル値の発生確率に基づいて異なる長さの符号を割り当てるエントロピー符号化されたデータの復号である。
【0020】
復号部210は、符号化データの復号処理によって制御データを取得するように構成されていてもよい。
【0021】
ここで、制御データは、符号化ブロック(CU:Coding Unit)サイズや、予測ブロック(PU:Prediction Unit)サイズや、変換ブロック(TU:Transform Unit)サイズ等のサイズデータを含んでもよい。
【0022】
逆変換・逆量子化部220は、復号部210から出力される係数レベル値の逆変換処理を行うように構成されている。ここで、逆変換・逆量子化部220は、逆変換処理に先立って、係数レベル値の逆量子化を行うように構成されていてもよい。
【0023】
また、逆変換・逆量子化部220は、逆量子化の際に用いる量子化ステップサイズを定義するパラメータである量子化パラメータ(QP:Quantization Parameter)を、後述するようにブロック毎に復号するように構成されていてもよい。
【0024】
また、逆変換・逆量子化部220は、後述する変換スキップモード(Transform Skip)が適用されているブロックでは、逆変換処理を行わないように構成されていてもよい。
【0025】
加算器230は、逆変換・逆量子化部220から出力される予測残差信号に予測信号を加算してフィルタ処理前復号信号を生成し、フィルタ処理前復号信号をイントラ予測部242及びインループフィルタ処理部250に出力するように構成されている。
【0026】
ここで、フィルタ処理前復号信号は、イントラ予測部242で用いる参照ブロックを構成する。
【0027】
インター予測部241は、インター予測(フレーム間予測)によって予測信号を生成するように構成されている。
【0028】
具体的には、インター予測部241は、符号化データから復号した動きベクトルと参照フレームに含まれる参照信号に基づいて予測信号を予測ブロック毎に生成するように構成されている。インター予測部241は、予測信号を加算器230に出力するように構成されている。
【0029】
ここで、インター予測部241は、インター予測の具体的な方法として、複数のモードを備えていてもよい。例えば、インター予測部241は、後述するTriangle Partition Mode(TPM)やGeometrical Partitioning(GEO)モードを備えていてもよい。
【0030】
イントラ予測部242は、イントラ予測(フレーム内予測)によって予測信号を生成するように構成されている。
【0031】
具体的には、イントラ予測部242は、対象フレームに含まれる参照ブロックを特定し、特定された参照ブロックに基づいて予測信号を予測ブロック毎に生成するように構成されている。イントラ予測部242は、予測信号を加算器230に出力するように構成されている。
【0032】
インループフィルタ処理部250は、加算器230から出力されるフィルタ処理前復号信号に対してフィルタ処理を行うとともに、フィルタ処理後復号信号をフレームバッファ260に出力するように構成されている。
【0033】
ここで、インループフィルタ処理は、複数のフィルタ処理から構成されていてもよい。例えば、フィルタ処理は、ブロック(符号化ブロック、予測ブロック、変換ブロック或いはそれらを分割したサブブロック)の境界部分で生じる歪みを減少するデブロッキングフィルタ処理や、画像符号化装置100から伝送されるフィルタ係数やフィルタ選択情報や画像の絵柄の局所的な性質等に基づいてフィルタを切り替える適応ループフィルタ処理である。
【0034】
フレームバッファ260は、インター予測部241で用いる参照フレームを蓄積するように構成されている。
【0035】
ここで、フィルタ処理後復号信号は、インター予測部241で用いる参照フレームを構成する。
【0036】
(逆変換・逆量子化部220)
以下、
図3を参照して、本実施形態に係る逆変換・逆量子化部220について説明する。
図3は、本実施形態に係る画像復号装置200の逆変換・逆量子化220の機能ブロックの一例について示す図である。
【0037】
図3に示すように、逆変換・逆量子化220は、量子化パラメータ導出部220Aと、逆量子化部220Bと、逆変換部220Cとを具備している。
【0038】
量子化パラメータ導出部220Aは、制御データを入力として、ブロック毎に量子化パラメータを復号し、逆量子化部220Bへ出力するように構成されている。
【0039】
具体的には、量子化パラメータ導出部220Aは、対象ブロックの復号された量子化パラメータの値を対象ブロックに適応色変換が適用されているか否かによって補正した後に、補正後の量子化パラメータの値及び「0」以上の予め定めた値のうちの大きい方の値を対象ブロックの量子化パラメータとするように構成されている。
【0040】
例えば、量子化パラメータ導出部220Aは、対象ブロックの復号された量子化パラメータの値を対象ブロックに適応色変換が適用されているか否かによって補正した後に、補正後の量子化パラメータの値及び「0」のうちの大きい方の値を対象ブロックの量子化パラメータとするように構成されていてもよい。
【0041】
或いは、量子化パラメータ導出部220Aは、対象ブロックに変換スキップモードが適用されていない場合に、対象ブロックの復号された量子化パラメータの値を対象ブロックに適応色変換が適用されているか否かによって補正した後に、補正後の量子化パラメータの値及び「0」のうちの大きい方の値を対象ブロックの量子化パラメータとするように構成されていてもよい。
【0042】
或いは、量子化パラメータ導出部220Aは、対象ブロックに変換スキップモードが適用されている場合に、対象ブロックに適応色変換が適用されているか否かに関わらず、対象ブロックの量子化パラメータの値を変換スキップモード適用時の量子化パラメータの最小値以上とするように構成されていてもよい。
【0043】
或いは、量子化パラメータ導出部220Aは、対象ブロックに変換スキップモードが適用されている場合に、復号された量子化パラメータの値を対象ブロックに適応色変換が適用されているか否かによって補正した後に、補正後の量子化パラメータの値及び変換スキップモード適用時の量子化パラメータの最小値のうちの大きい方の値を対象ブロックの量子化パラメータとするように構成されていてもよい。
【0044】
或いは、量子化パラメータ導出部220Aは、対象ブロックに変換スキップモードが適用されている場合に、対象ブロックに適応色変換が適用されているか否かに関わらず、対象ブロックの量子化パラメータの値を「4」以上とするように構成されていてもよい。
【0045】
或いは、量子化パラメータ導出部220Aは、対象ブロックに変換スキップモードが適用されている場合に、対象ブロックの復号された量子化パラメータの値を対象ブロックに適応色変換が適用されているか否かによって補正した後に、補正後の量子化パラメータの値及び「4」のうちの大きい方の値を対象ブロックの量子化パラメータとするように構成されていてもよい。
【0046】
量子化パラメータ導出部220Aの具体的な処理内容の一例については後述する。
【0047】
逆量子化部220Bは、前記量子化パラメータと復号部210から出力される係数レベル値を入力として、逆量子化処理を行い、逆量子化後の係数レベル値を出力するように構成されている。逆量子化部220Bの具体的な処理については、公知の方法を用いることができるため説明を省略する。
【0048】
逆変換部220Cは、逆量子化部220Bによって出力された逆量子化処理後の係数レベル値を入力として、逆変換処理を行って残差信号を出力するように構成されている。なお、逆変換部220Cの具体的な処理については、公知の方法を用いることができるため説明を省略する。
【0049】
なお、当該ブロックに変換スキップモード(Transform Skip)が適用されている場合は、逆変換部220Cの処理を行わず、逆量子化部220Bの出力を、逆変換・逆量子化部220の出力としてもよい。当該ブロックにTransform Skipが適用されているかどうかは、例えば、非特許文献1におけるtransform#skip#flagの値を確認することで判別することができる。
【0050】
図4は、量子化パラメータ導出部220Aの処理フローの一例を示すフローチャートである。以下、
図4を参照して、本実施形態に係る量子化パラメータ導出部220Aの処理の一例について説明する。
【0051】
図4に示すように、ステップS41において、量子化パラメータ導出部220Aは、変数QpYの値を導出する。QpYは、例えば、非特許文献1と同様に、以下の式で算出することができる。
【0052】
QpY=((qPY#PRED+CuQpDeltaVal+64+2×QpBdOffset)%(64+QpBdOffset))-QpBdOffset … (式1)
ここで、qPY#PREDは、周囲のブロックから算出した予測値である。また、CuQpDeltaValは、隣接ブロックのQpYと対象ブロックのQpYとの差分を示す値で、画像符号化装置100から伝送された値を復号部210で復号することにより得られる。QpBdOffsetは、画素値の内部ビット深度に応じて設定される正の値である。
【0053】
これらの変数の具体的な算出方法として、例えば、非特許文献1に記載の方法を用いることができる。
【0054】
上述の(式1)における「+64+2×QpBdOffset」の部分は、演算子%より前の部分が「0」以上であることを担保するために加算されており、(式1)で算出されるQpYの値の最小値は「-QpBdOffset」である。
【0055】
ステップS42において、量子化パラメータ導出部220Aは、輝度信号の量子化パラメータ値であるQp’Yを算出する。例えば、量子化パラメータ導出部220Aは、非特許文献1と同様に、Qp’Yについて、以下の(式2)で算出することができる。
【0056】
Qp’Y= QpY+QpBdOffset … (式2)
ここで、上述のようにQpYの最小値は「-QpBdOffset」であるため、Qp’Yの最小値は「0」となる。
【0057】
ステップS43において、量子化パラメータ導出部220Aは、色差信号の量子化パラメータ値であるQp’Cb、Qp’Cr、Cp’CbCrを算出する。
【0058】
なお、実際には、Cb信号、Cr信号、Joint Chroma Codingという機能を用いた場合について、それぞれ量子化パラメータQp’Cb、Qp’Cr、Cp’CbCrが定義されるが、計算方法は、基本的に同一であるため、以下まとめてパラメータQp’Cbの算出法のみを説明し、他の2つの説明は省略する。
【0059】
例えば、量子化パラメータ導出部220Aは、非特許文献1と同様に、Qp’Cbについて、以下の(式3)で算出することができる。
【0060】
Qp’Cb=Clip3(-QpBdOffset,63,qPcb+pps#cb#qp#offset+slice#cb#qp#offset+CuQpOffsetCb)+QpBdOffset … (式3)
ここで、qPcbは、上述のQpYを用いて算出するパラメータである。pps#cb#qp#offsetは、PPS(Picture Parameter Set)で指定された値である。slice#cb#qp#offsetは、Slice Headerで指定された値である。CuQpOffsetCbは、画像符号化装置100から伝送された値を復号部210で復号することにより得られる。
【0061】
これらのパラメータの具体的な算出方法としては、例えば、非特許文献1に記載の方法を用いることができる。
【0062】
上述の(式3)中の「Clip3(min,max,val)」は、変数valの値が変数minより小さい場合は「min」の値を返し、変数valの値が変数maxより大きい場合は「max」の値を返し、それ以外の場合は「val」の値をそのまま返す関数である。よって、(式3)の右辺第一項の最小値は「-QpBdOffset」であり、(式3)の右辺第二項において(式3)の右辺第一項の値に「QpBdOffset」を加算するため、Qp’Cbの最小値は「0」である。
【0063】
なお、以上で説明したQp’Y、Qp’Cb、Qp’Cr、Cp’CbCrの導出法は、あくまで一例である。それぞれの値の最小値が「0」になるような導出方法であれば、上記以外の方法で導出しても差し支えない。
【0064】
ステップS44において、量子化パラメータ導出部220Aは、上述のように算出した輝度信号の量子化パラメータQp’Yと、色差信号の量子化パラメータQp’Cb、Qp’Cr、Cp’CbCrについて、以下の通り補正する。
【0065】
第1に、Qp’Y、Qp’Cb、Qp’Cr、Cp’CbCrをそれぞれ代入した変数qPについて考える。
【0066】
量子化パラメータ導出部220Aは、対象ブロックの色信号(Y,Cb、Cr又はCbCr)に変換スキップ(Transform Skip)が適用されない場合(例えば、transform#skip#flagの値が「0」である場合)、以下の(式4)及び(式5)に示す通り、補正する。
【0067】
qP=qP-(cu#act#enabled#flag?offset:0) … (式4)
qP=Max(0,qP) … (式5)
ここで、cu#act#enabled#flagは、対象ブロックに適応色変換(Adaptive Color Transform:ACT)が適用されているか否かについて示すフラグであり、offsetは、正の整数である。また、Max(a,b)は、a及びb2つの変数のうち値が大きな方と同じ値を返す関数である。
【0068】
また、量子化パラメータ導出部220Aは、対象ブロックにTransform Skipが適用される場合(例えば、transform#skip#flagの値が「1」である場合)、以下の(式6)に示す通り、補正する。
【0069】
qP=Max(QpPrimeTsMin,qP-(cu#act#enabled#flag?offset:0)) … (式6)
ここで、QpPrimeTsMinは、Transform Skipが適用されるブロックにおける量子化パラメータの最小値を定義する変数である。
【0070】
また、量子化パラメータ導出部220Aは、対象ブロックにTransform Skipが適用される場合(例えば、transform#skip#flagの値が「1」である場合)、以下の(式7)及び(式8)に示す通り、補正してもよい。
【0071】
qP=Max(QpPrimeTsMin,qP)-(cu#act#enabled#flag?offset:0)) … (式7)
qP=Max(4,qP) … (式8)
また、量子化パラメータ導出部220Aは、上述の(式4)、(式6)及び(式7)の変数offsetの値を色信号ごとに切り替えてもよい。
【0072】
例えば、量子化パラメータ導出部220Aは、Y信号及びCb信号(ACT適用時には、Cg信号に相当)の場合(例えば、非特許文献1におけるcIdxの値が「0」か「1」である場合)は「offset=5」、Cr信号(ACT適用時には、Co信号に相当)の場合(例えば、非特許文献1におけるcIdxの値が「2」である場合)は「offset=3」とすることができる。
【0073】
以上のように量子化パラメータの値を補正することで、全てのブロックについて量子化パラメータの値が「0」以上となることを担保できる。
また、対象ブロックにTransform Skipモードを適用する場合は、例えば、上述の(式6)のように補正を行うことで、量子化パラメータの値が「QpPrimeTsMin」以上となるように担保することができる。
【0074】
このような構成とすることで、適応色変換の適否に関わらず、Transform Skipを適用したブロックでの量子化パラメータの最小値を統一することができる。
【0075】
また、対象ブロックにTransform Skipを適用する場合は、例えば、上述の(式7)及び(式8)のように補正を行うことで、量子化パラメータの値が「4」以上となるように担保することができる。Transform Skipモード適用時は「QP=4」の場合に、量子化ステップ幅が「1」になり、ロスレスでの復号が可能になるため、このような構成とすることで不要に量子化パラメータの値が小さくなることを防止することができる。
【0076】
また、ステップS45として説明した量子化パラメータ補正の処理について、それぞれステップS42及びステップS43において、以下の(式9)及び(式10)に示すように行うこともできる。
【0077】
Qp’Y=Max(MinVal,QpY+QpBdOffset-(cu#act#enabled#flag?offset:0)) … (式6)
Qp’Cb=Clip3(-QpBdOffset+MinVal,63,qPcb+pps#cb#qp#offset+slice#cb#qp#offset+CuQpOffsetCb)+QpBdOffset … (式10)
ここで、MinValは、対象ブロックにTransform Skipを適用しない場合は「0」であり、対象ブロックにTransform Skipを適用する場合は「QpPrimeTsMin」である。
【0078】
以上のような構成とすることで、適応色変換の適否にかかわらず、量子化パラメータの値が必ず「0」以上になるように担保することができる。例えば、非特許文献1では、量子化パラメータの値を用いて剰余計算を行っており、被除数が「0」以上になることが求められるため、計算の安定性を担保することができる。
また、以上のような構成とすることで、適応色変換の適否にかかわらず、Transform Skipが適用されるブロックでは、量子化パラメータ値が「QpPrimeTsMin」以上になることを担保できる。
【0079】
Transform Skip適用時は「QP=4」の場合に量子化ステップ幅が「1」になり、ロスレスでの復号が可能になる。よって、「QpPrimeTsMin=4と定義した上で、上述の処理を行うと、Transform Skip適用ブロックで量子化パラメータが不要に小さくなることを防止することができる。
【0080】
以上のように、各色信号に対応した量子化パラメータ値をブロック毎に算出することができる。
【0081】
(イントラ予測部242)
以下、
図5を参照して、本実施形態に係るイントラ予測部242について説明する。
図5は、本実施形態に係る画像復号装置200のイントラ予測部242の機能ブロックの一例について示す図である。
【0082】
図5に示すように、イントラ予測部242は、イントラ予測モード復号部242Bと、予測信号生成部242Cとを有する。
【0083】
イントラ予測部242は、イントラ予測(フレーム内予測)によって予測信号を生成するように構成されている予測部の一例である。
【0084】
イントラ予測モード復号部242Bは、ブロックごとにイントラ予測を行うために必要な情報を復号するように構成されている。
【0085】
図6は、イントラ予測モード復号部242Bによる色差信号のイントラ予測モードの復号処理のフローの一例を示すフローチャートである。以下、
図6を用いて、イントラ予測モード復号部242Bによる色差信号のイントラ予測モードの復号処理のフローの一例を説明する。
【0086】
ステップS601において、イントラ予測モード復号部242Bは、所定条件1が満たされているか否かについて判定する。
【0087】
かかる所定条件1には、対象CUの幅がTransform Skipを適用する際の最大サイズ(例えば、非特許文献1のMaxTsSize)以下であることという条件が含まれていてもよい。
【0088】
また、かかる所定条件1には、対象CUの高さがTransform Skipを適用する際の最大サイズ(例えば、非特許文献1のMaxTsSize)以下であることという条件が含まれていてもよい。
【0089】
ここで、イントラ予測モード復号部242Bは、CUの幅や高さについて、色差信号のサンプリング比に応じた色差信号の実際のCUサイズ(幅/高さ)としてもよい。例えば、YUV4:2:0サンプリングの場合、色差信号のCUサイズ(幅/高さ)は、輝度信号の場合と比較して半分になる。
【0090】
また、かかる所定条件1には、SPS(Sequence Parameter Set)において、BDPCM(Block DPCM)が有効になっていること(例えば、sps#bdpcm#chroma#enabled#flagの値が「0」より大きいこと)という条件が含まれていてもよい。
【0091】
所定条件1の全てが満たされる場合には、本動作は、ステップS602に進み、所定条件1のどれか一つでも満たされない場合には、本動作は、ステップS603へ進む。
【0092】
ステップS602では、イントラ予測モード復号部242Bは、intra#bdpcm#chroma#flagを復号する。intra#bdpcm#chroma#flagが「1」である場合は、対象色差CUでBDPCMを適用し、かかるintra#bdpcm#chroma#flagが「0」である場合は、BDPCMを適用しないことを意味する。
【0093】
ステップS603において、イントラ予測モード復号部242Bは、intra#bdpcm#chroma#flagの値が「0」より大きいかどうかを判定する。
【0094】
ここで、intra#bdpcm#chroma#flagの値が「0」より大きいと判定された場合には、本動作は、ステップS608に進み、そうでない場合には、本動作は、ステップS604へ進む。なお、上述の所定条件1が満たされずにステップS602の処理がスキップされた場合には、イントラ予測モード復号部242Bは、intra#bdpcm#chroma#flagの値を「0」とみなす。
【0095】
ステップS608において、イントラ予測モード復号部242Bは、intra#bdpcm#chroma#dir#flagを復号する。intra#bdpcm#chroma#dir#flagは、対象色差CUにBDPCMを適用する場合に、垂直方向から予測を行うか或いは水平方向から予測を行うかのどちらなのかについて示す。ステップS608の処理が終了後、本動作は、ステップS610へ移り処理を終了する。
【0096】
ステップS604において、イントラ予測モード復号部242Bは、所定条件2が満たされているか否かについて判定する。
【0097】
所定条件2には、対象色差CUでCCLM(色差線形予測)が使用可能であるという条件が含まれていてもよい。
【0098】
ここで、所定条件2が満たされると判定された場合は、本動作は、ステップS605に進み、そうでない場合は、本動作は、ステップS606に進む。
【0099】
ステップS605において、イントラ予測モード復号部242Bは、cclm#mode#flagを復号する。cclm#mode#flagが「1」である場合は、対象色差CUでCCLMを適用し、cclm#mode#flagが「0」である場合は、CCLMを適用しないことを意味する。
【0100】
ステップS606において、イントラ予測モード復号部242Bは、cclm#mode#flagの値が「0」より大きいか否かについて判定する。
【0101】
ここで、cclm#mode#flagの値が「0」より大きいと判定された場合には、本動作は、ステップS609に進み、そうでない場合には、本動作は、ステップS607へ進む。なお、所定条件2が満されずにステップS605の処理がスキップされた場合には、イントラ予測モード復号部242Bは、cclm#mode#flagの値を「0」とみなす。
【0102】
ステップS609において、イントラ予測モード復号部242Bは、cclm#mode#idxを復号する。ステップS609の処理が終了後、本動作は、ステップS610に進み、処理を終了する。
【0103】
ステップS607において、イントラ予測モード復号部242Bは、通常のイントラ予測のモード(intra#chroma#pred#mode)を復号する。ステップS607の処理が終了後、本動作は、ステップS610に進み、処理を終了する。
【0104】
以上のように、当該色差ブロックにBDPCMが適用される場合は、BDPCMの予測方向に関する情報を復号し、当該色差ブロックにBDPCMが適用されない場合は、CCLM或いは通常のイントラ予測モードに関する情報を復号するようにイントラ予測モード復号部242Bを構成することで、ブロック毎にBDPCM、CCLM、通常のイントラ予測モードを適切に選択可能であることを担保することができる。
【0105】
また、以上のように、色差BDPCMの適用可否の判定に色差CUのサイズを用いるようにイントラ予測モード復号部242Bを構成することで、色差のサンプリング方式が4:2:0、4:2:2、4:4:4と変化しても、実際の色差CUのサイズに応じた判定が可能となる。
【0106】
図5に示す予測信号生成部242Cは、イントラ予測モード復号部242Bで復号された処理対象ブロックの予測モードに基づいて、予測信号を生成するように構成されている。ここで、予測信号の生成方法は、例えば、非特許文献1に記載の公知の方法を用いることができる。
【0107】
図7は、予測信号生成部242Cによって輝度CU又は色差CUにBDPCMが適用される場合の処理フローの一例を示すフローチャートである。以下、
図7を用いて、かかる処理フローの一例を説明する。
【0108】
ステップS71において、予測信号生成部242Cは、所定条件3が満たされているか否かについて判定する。
【0109】
ここで、所定条件3には、BDPCMの予測に用いる参照画素へのフィルタリングが有効になっていることという条件が含まれていてもよい。
【0110】
例えば、SPS(Sequence Parameter Set)、PPS(Picture Parameter Set)、Picture Header、Slice Header等のヘッダに、BDPCM時の参照画素フィルタリング有効/無効を制御するフラグを設けることで、フィルタリングの有効/無効を切り替えることができる。
【0111】
また、所定条件3には、対象CUが属するスライスにおいて、Palette Mode等のスクリーンコンテンツ向けの符号化ツールが無効であることという条件が含まれていてもよい。
【0112】
Palette Mode等のスクリーンコンテンツ向けの符号化ツールが有効であるか無効あるかも、例えば、SPS、PPS、Picture Header、Slice Header等のヘッダに含まれるPalette Modeの有効/無効を制御するフラグの値を確認することで判定することができる。
【0113】
ここで、所定条件3が満たされると判定された場合には、本動作は、ステップS72に進み、そうでない場合には、本動作は、ステップS73へ進む。
【0114】
ステップS72において、予測信号生成部242Cは、予測に用いる参照画素を平滑化するためのフィルタリング処理を行う。
【0115】
予測信号生成部242Cは、例えば、色差信号の場合は、intra#bdpcm#chroma#dir#flagの値に基づいて、予測に用いる参照画素位置を決定することができる。予測信号生成部242Cは、輝度信号の場合も、同様な情報に基づいて、予測に用いる参照画素位置を決定することができる。
【0116】
フィルタリング処理は、例えば、係数の重みが{1/4,2/4,1/4}であるような線形フィルタを畳込むことで実行できる。かかるフィルタリング処理の完了後、本動作は、ステップS73に進む。
【0117】
ステップS73において、予測信号生成部242Cは、ステップS72で平滑化した参照画素又は平滑化されていない参照画素を用いて予測値を生成する。
【0118】
予測値生成処理の詳細としては、公知の方法を用いることができるため詳細は省略する。予測値生成処理の完了後、本動作は、ステップS74に進み、処理を終了する。
【0119】
以上のように、イントラ予測部242が、予測信号生成部242Cを備え、予測信号生成部242Cが、BDPCMによる予測値生成処理に先立って、予測値生成に用いる参照画素に平滑化処理を行うように構成しておくことで、参照画素に撮像ノイズ等のノイズが重畳されていた場合であっても、かかるノイズを低減する効果が見込め、予測精度が向上して符号化効率を改善することができる。
【0120】
また、以上のように、イントラ予測部242が、予測信号生成部242Cを備え、予測信号生成部242Cが、ヘッダに含まれるBDPCM時の参照画素フィルタリング有効/無効を制御するフラグの値によって、BDPCMによる予測値生成処理に先立って、予測値生成に用いる参照画素に平滑化処理を行うか否かを制御するように構成しておくことで、平滑化が有効と考えられるカメラで撮影された映像に対しては平滑化を行い、平滑化が不要と考えられるスクリーンコンテンツに対しては平滑化をしないようにすることで、符号化効率の意図しない低下を防ぐことができる。
【0121】
また、以上のように、イントラ予測部242が、予測信号生成部242Cを備え、予測信号生成部242Cが、スクリーンコンテンツ向けの符号化ツールが有効か無効かによって、BDPCMによる予測値生成処理に先立って、予測値生成に用いる参照画素に平滑化処理を行うか否かを制御するように構成しておくことで、平滑化が有効なカメラで撮影された映像には平滑化を行い、平滑化が不要なスクリーンコンテンツにおいては平滑化をしないようにすることで、符号化効率の意図しない低下を防ぐことができる。
【0122】
(インループフィルタ処理部250)
以下、
図8を参照して、本実施形態に係るインループフィルタ処理部250について説明する。
図8は、本実施形態に係る画像復号装置200のインループフィルタ処理部250の機能ブロックの一例について示す図である。
【0123】
図8に示すように、インループフィルタ処理部250は、デブロッキングフィルタ部250Aと、SAO部250Bと、適応ループフィルタ部250Cとを有する。
【0124】
SAO部250Bは、サンプルアダプティブオフセット(SAO:Sample Adaptive Offset)処理を行うように構成されている。SAO部250Bとしては、公知の処理を用いることができるため、具体的な処理内容の説明は省略する。
【0125】
なお、
図8に示す構成は、あくまで一例である。各ループフィルタの処理順は入れ替わっても差し支えない。また、
図8に示す一部のループフィルタ処理が省略された構成でも差し支えない。また、
図8に示されていないループフィルタ処理が追加されても差し支えない。
【0126】
以下、デブロッキングフィルタ部250A及び適応ループフィルタ処理部250Cの処理内容の一例について説明する。
【0127】
図9に示すように、デブロッキングフィルタ部250Aは、ブロック境界検出部251(251A/251B)と、境界強度判定部253(253A/253B)と、フィルタ決定部254(254A/254B)と、フィルタ処理部255(255A/255B)とを有する。
【0128】
ここで、末尾に「A」が付されている構成は、垂直方向のブロック境界に対するデブロッキングフィルタ処理に関する構成であり、末尾に「B」が付されている構成は、水平方向のブロック境界に対するデブロッキングフィルタ処理に関する構成である。
【0129】
以下、垂直方向のブロック境界に対するデブロッキングフィルタ処理が行われた後に、水平方向のブロック境界に対するデブロッキングフィルタ処理が行われるケースについて例示する。
【0130】
デブロッキングフィルタ処理は、上述したように、符号化ブロックに対して適用されてもよく、予測ブロックに対して適用されてもよく、変換ブロックに対して適用されてもよい。また、デブロッキングフィルタ処理は、上記の各ブロックを分割したサブブロックに適用されてもよい。すなわち、対象ブロック及び隣接ブロックは、符号化ブロックであってもよく、予測ブロックであってもよく、変換ブロックであってもよく、これらを分割したサブブロックでもよい。
【0131】
サブブロックにデブロッキングフィルタを適用する場合は、適宜、以下の説明のブロックをサブブロックに読み替えることができる。
【0132】
垂直方向のブロック境界に対するデブロッキングフィルタ処理及び水平方向のブロック境界に対するデブロッキングフィルタ処理は、同様の処理であるため、以下においては、垂直方向のブロック境界に対するデブロッキングフィルタ処理について説明する。
【0133】
ブロック境界検出部251Aは、ブロックサイズを示す制御データに基づいて、隣接する2つのブロックの境界(ブロック境界)を検出するように構成されている。
【0134】
ここで、ブロックは、符号化ブロック(CU)、予測ブロック(PU)、変換ブロック(TU)である。具体的な検出方法としては、既知の手法が適用可能なため、詳細の説明は省略する。
【0135】
境界強度判定部253Aは、対象ブロックと隣接ブロックとのブロック境界の境界強度を判定するように構成されている。
【0136】
また、境界強度判定部253Aは、対象ブロック及び隣接ブロックがイントラ予測ブロックであるか否かについて示す制御データに基づいて、ブロック境界の境界強度を判定するように構成されていてもよい。
【0137】
例えば、
図10に示すように、境界強度判定部253Aは、対象ブロック及び隣接ブロックの少なくともいずれか1つのブロックがロスレスブロックである場合に、ブロック境界の境界強度が「0」であると判定するように構成されていてもよい。
【0138】
ここで、ロスレスブロックとは、Transform Skipが適用されており且つ量子化パラメータの値が予め定めた閾値(第1閾値)以下であるブロックであると定義してもよい。
【0139】
或いは、ロスレスブロックとは、Transform Skipが適用されており且つ量子化パラメータの値が第1閾値に等しいブロックであると定義してもよい。
【0140】
例えば、かかる第1閾値を変換スキップモード時の量子化パラメータの最小値(上述のQpPrimeTsMin)としてもよい。また、例えば、かかる第1閾値を「4」としてもよい。
【0141】
或いは、ロスレスブロックとは、Transform Skipの適用有無に関わらず、量子化パラメータの値が第1閾値以下であるブロックであると定義してもよい。例えば、かかる第1閾値を変換スキップモード時の量子化パラメータの最小値(上述のQpPrimeTsMin)としてもよい。例えば、かかる閾値を「4」としてもよい。
【0142】
例えば、
図10に示すように、境界強度判定部253Aは、上述のブロック境界がサブブロック境界で、対象CUにアフィン動き補償予測が適用され、Picture HeaderにてPROFが有効である場合に、かかるブロック境界の境界強度が「0」であると判定するように構成されていてもよい。
【0143】
例えば、
図10に示すように、境界強度判定部253Aは、対象ブロック及び隣接ブロックの少なくともいずれか1つのブロックがイントラ予測ブロックである場合(すなわち、ブロック境界の両側のブロックの少なくともいずれかがイントラ予測ブロックである場合)に、かかるブロック境界の境界強度が「2」であると判定するように構成されていてもよい。
【0144】
また、境界強度判定部253Aは、対象ブロック及び隣接ブロックに非零(ゼロ)の直交変換係数が含まれるか否か及びブロック境界が変換ブロックの境界(TU境界)であるか否かについて示す制御データに基づいて、かかるブロック境界の境界強度を判定するように構成されていてもよい。
【0145】
例えば、
図10に示すように、境界強度判定部253Aは、対象ブロック及び隣接ブロックの少なくともいずれか1つのブロックが非零の直交変換係数を含み、且つ、ブロック境界が変換ブロックの境界である場合(すなわち、ブロック境界の両側のブロックの少なくともいずれかに非零の変換係数が存在し、TUの境界である場合)に、かかるブロック境界の境界強度が「1」であると判定するように構成されていてもよい。
【0146】
また、境界強度判定部253Aは、対象ブロック及び隣接ブロックの動きベクトルの差の絶対値が閾値(例えば、1/2画素)以上であるか否かについて示す制御データに基づいて、かかるブロック境界の境界強度を判定するように構成されていてもよい。
【0147】
例えば、
図10に示すように、境界強度判定部253Aは、対象ブロック及び隣接ブロックの動きベクトルの差の絶対値が閾値(例えば、1/2画素)以上である場合(すなわち、ブロック境界の両側のブロックの動きベクトルの差の絶対値が閾値(例えば、1/2画素)以上である場合)に、かかるブロック境界の境界強度が「1」であると判定するように構成されていてもよい。
【0148】
また、境界強度判定部253Aは、対象ブロック及び隣接ブロックの動きベクトルの予測で参照される参照ブロックが異なるか否かについて示す制御データに基づいて、かかるブロック境界の境界強度を判定するように構成されていてもよい。
【0149】
例えば、
図10に示すように、境界強度判定部253Aは、対象ブロック及び隣接ブロックの動きベクトルの予測で参照される参照ブロックが異なる場合(すなわち、ブロック境界の両側のブロックで参照画像が異なる場合)に、かかるブロック境界の境界強度が「1」であると判定するように構成されていてもよい。
【0150】
境界強度判定部253Aは、対象ブロック及び隣接ブロックの動きベクトルの数が異なるか否かについて示す制御データに基づいて、かかるブロック境界の境界強度を判定するように構成されていてもよい。
【0151】
例えば、
図10に示すように、境界強度判定部253Aは、対象ブロック及び隣接ブロックの動きベクトルの数が異なる場合(すなわち、ブロック境界の両側のブロックで動きベクトルの数が異なる場合)に、かかるブロック境界の境界強度が「1」であると判定するように構成されていてもよい。
【0152】
境界強度判定部253Aは、対象ブロック及び隣接ブロックのインター予測モードの種類に基づいて、かかるブロック境界の境界強度を判定するように構成されていてもよい。
【0153】
例えば、
図10に示すように、境界強度判定部253Aは、上述のブロック境界がCU境界であり且つ対象ブロック及び隣接ブロックの少なくともいずれかのブロックでTPMが使用されている場合に、かかるブロック境界の境界強度が「1」であると判定するように構成されていてもよい。
【0154】
或いは、境界強度判定部253Aは、上述のブロック境界がCU境界であり且つ対象ブロック及び隣接ブロックの少なくともいずれかのブロックでTPMが使用されており、後述する重み係数の値が所定条件を満たす場合に、かかるブロック境界の境界強度が「1」であると判定するように構成されていてもよい。
【0155】
例えば、
図10に示すように、境界強度判定部253Aは、上述のブロック境界がCU境界であり且つ対象ブロック及び隣接ブロックの少なくともいずれかのブロックでGEOが使用されている場合に、かかるブロック境界の境界強度が「1」であると判定するように構成されていてもよい。
【0156】
或いは、境界強度判定部253Aは、上述の境界がCU境界であり且つ対象ブロック及び隣接ブロックの少なくともいずれかのブロックでGEOが使用されており、後述する重み係数の値が所定条件を満たす場合に、かかるブロック境界の境界強度が「1」であると判定するように構成されていてもよい。
【0157】
例えば、
図10に示すように、境界強度判定部253Aは、上述した条件がいずれも満たされない場合に、かかるブロック境界の境界強度が「0」であると判定するように構成されていてもよい。
【0158】
なお、境界強度の値が大きいほど、ブロック境界で生じるブロック歪みが大きい可能性が高い。
【0159】
上述の境界強度判定方法は、輝度信号及び色差信号に対して、共通の方法で判定してもよいし、一部異なる条件を用いて判定してもよい。
【0160】
以下、
図11(a)~
図11(d)を用いて、TPMやGEOの重み係数について説明する。TPMやGEOは、(正方形も含む)長方形のブロックを直線で2つの領域に分割し、それぞれの領域で異なる動きベクトルを用いて動き補償予測を行うモードである。
【0161】
TPMは、長方形の対角線に分割境界が限定されており、GEOは、より自由度の高い分割を行うことができる。TPM及びGEOの詳細については、非特許文献1や非特許文献2に記載の仕様を踏襲できるため、詳細の説明は省略する。
【0162】
TPMやGEOでは、上述の分割境界付近の画素では、各分割領域に対応する2つのベクトルによる予測値を重み付けして合成し、その重みをグラデーション状に変化させるように定義することで、予測値を滑らかに合成している。
図11(a)~
図11(d)は、合成時の重み係数の例を示す図である。
図11(a)~
図11(d)では、重み係数を0/8~8/8として、1つ目の動きベクトルによる予測値(P1)の重みの分子を示している。なお、2つ目の動きベクトルによる予測値(P2)の重みは、1-(P1の重み)で算出できる。
上述の境界強度決定の際の重み係数の所定条件4は、例えば、境界強度の判定を4画素ごとに行う場合、以下のように定義することができる。
【0163】
所定条件4は、対象のブロック境界(4画素)に隣接する4×4画素ブロックの四隅の画素の重み係数値を加算した値が、第2閾値以上且つ第3閾値以下(または、第2閾値より大きく且つ第3閾値より小さい)ことと定義してもよい。
【0164】
或いは、所定条件4は、対象境界(4画素)の各画素の重み係数値の少なくともいずれか一つが、0(=0/8)又は1(=8/8)以外であることと定義しても良い。
【0165】
フィルタ決定部254Aは、ブロック境界に適用するフィルタ処理(例えば、デブロッキングフィルタ処理)の種類を決定するように構成されている。
【0166】
例えば、フィルタ決定部254Aは、ブロック境界の境界強度や、対象ブロック及び隣接ブロックに含まれる量子化パラメータ等に基づいて、ブロック境界に対して、フィルタ処理を適用するか否か、弱フィルタ処理及び強フィルタ処理のいずれのフィルタ処理を適用するかについて決定するように構成されていてもよい。
【0167】
フィルタ決定部254Aは、ブロック境界の境界強度が「0」である場合に、フィルタ処理を適用しないと決定するように構成されていてもよい。
【0168】
フィルタ処理部255Aは、フィルタ決定部254Aの決定に基づいて、デブロッキング前画像に対する処理を行うように構成されている。デブロッキング前画像に対する処理は、フィルタ処理無し、弱フィルタ処理、強フィルタ処理等である。
【0169】
すなわち、デブロッキングフィルタ部250Aは、量子化パラメータの値が予め定めた閾値以下であるという第1条件を、隣接する2つのブロックのうちの少なくともいずれか一方のブロックが満たすか否かに基づいて、前記2つのブロックの境界に適用するデブロッキングフィルタを制御するように構成されている。
【0170】
或いは、デブロッキングフィルタ部250Aは、量子化パラメータの値が予め定めた閾値であるという第1条件を、隣接する2つのブロックのうちの少なくともいずれか一方のブロックが満たすか否かに基づいて、前記2つのブロックの境界に適用するデブロッキングフィルタを制御するように構成されている。
【0171】
或いは、デブロッキングフィルタ部250Aは、前記第1条件を隣接する2つのブロックのうちの少なくともいずれか一方のブロックが満たす場合、前記境界に適用するデブロッキングフィルタの制御に用いる境界強度を「0」に設定するように構成されている。
【0172】
或いは、デブロッキングフィルタ部250Aは、前記第1条件と、変換スキップモードが適用されているという第2条件の両方を、隣接する2つのブロックのうちの少なくともいずれか一方のブロックが満たす場合、前記境界に適用するデブロッキングフィルタの制御に用いる境界強度を「0」に設定するように構成されている。
【0173】
以上のように、ロスレスブロックの境界の境界強度を「0」にすることで、対象ブロック内の全ての画素にデブロッキングフィルタが適用されず、ブロック単位でのロスレスを担保できるようになる。
【0174】
図12は、フィルタ処理部255Aの処理フローの一例を示すフローチャートである。以下、
図12を用いてフィルタ処理部255Aの処理フローの一例を説明する。
【0175】
ステップS121において、フィルタ処理部255Aは、フィルタ決定部254Aで決定したフィルタ処理に応じて、フィルタ適用後の画素値を算出する。
【0176】
ステップS122において、フィルタ処理部255Aは、ブロックPが所定条件5を満足しているかどうかについて判定する。
【0177】
なお、以後、対象ブロック境界に隣接する2つのブロックのうち、一方をブロックPと呼び、他方をブロックQと呼ぶ。
【0178】
例えば、所定条件5には、ブロックPにPalette Modeが適用されていることという条件が含まれていてもよい。
【0179】
或いは、例えば、所定条件5には、ブロックPがロスレスブロックであることという条件が含まれていてもよい。ここで、ロスレスブロックの定義としては、例えば、境界強度判定部253Aにおいて説明した定義と同様の定義を用いることができる。
【0180】
所定条件5が満たされていると判定された場合は、本動作は、ステップS126へ進み、そうでない場合、本動作は、ステップS123へ進む。
【0181】
ステップS123において、フィルタ処理部255Aは、ステップS121で生成したフィルタ適用後の画素値をフィルタ処理後画像に反映する。
【0182】
一方、ステップS126において、フィルタ処理部255Aは、ブロックPの画素値にステップS121で生成したフィルタ適用後の画素値を反映しないように処理する。
【0183】
具体的には、例えば、「ブロックP側の境界からn画素離れた画素までフィルタ適用後画素値を適用する」ことを意味するパラメータnの値を「0」にすることで実現できる。
【0184】
或いは、例えば、フィルタ適用後の画素値をフィルタ適用前の画素値に置き換えておくことで実現できる。なお、ブロックP内の画素に結果的にフィルタ適用後の画素値が反映されないようになっていれば、例示した方法以外の方法を用いてもよい。
【0185】
次に、ステップS124、S125、S127において、ブロックQに対して、上述のステップS122、S123、S126と同様の処理を行った後、本動作は、ステップS128へ進み、処理を終了する。
【0186】
すなわち、デブロッキングフィルタ部250Aは、量子化パラメータの値が予め定めた閾値以下であるという第1条件を満たすブロック内部の画素について、デブロッキングフィルタを適用しないように構成されている。
【0187】
或いは、デブロッキングフィルタ部250Aは、量子化パラメータの値が予め定めた閾値であるという第1条件を満たすブロック内部の画素について、デブロッキングフィルタを適用しないように構成されている。
【0188】
或いは、デブロッキングフィルタ部250Aは、当該ブロックが、前記第1条件と、変換スキップモードが適用されているという第2条件の両方を満たすか否かに基づいて、前記境界に適用するデブロッキングフィルタを制御するように構成されている。
【0189】
或いは、デブロッキングフィルタ部250Aは、前記第1条件と第2条件の両方を満たすブロック内部の画素について、デブロッキングフィルタを適用しないように構成されている。
【0190】
なお、前記第1条件の閾値は「4」でも良い。或いは、前記第1条件の閾値は変換スキップモード時の量子化パラメータの最小値、すなわちQpPrimeTsMinでもよい。
【0191】
以上のように、ロスレスブロック内にてフィルタ適用後画素値を反映しないようにすることで、ブロック単位でのロスレスを担保できるようになる。
【0192】
また、以上のように、TPM又はGEOが適用されているブロック境界において、重み係数の値に応じて境界強度を制御するように構成されていてもよい。
【0193】
また、以上のように、TPM又はGEOが適用されているブロック境界において、対象のブロック境界(4画素)に隣接する4×4画素ブロックの四隅の画素の重み係数値を加算した値が、第2閾値以上且つ第3閾値以下(又は、第2閾値より大きく且つ第3閾値より小さい)という条件を満たすか否かによって、境界強度を制御するように構成されていてもよい。
【0194】
また、以上のように、TPM又はGEOが適用されているブロック境界において、対象境界(4画素)の各画素の重み係数値の少なくともいずれか一つが、0(=0/8)又は1(=8/8)以外であるという条件を満たすか否かによって、境界強度を制御するように構成されていてもよい。
【0195】
上述のような構成とすることで、隣接するブロック間で動きベクトル(MV)の値や本数が、所望条件に当てはまらない場合でも、TPM又はGEOが適用されているブロック境界において重み係数の値が異なっていて実際にブロック歪が発生しそうな境界について、デブロッキングフィルタを適切に適用できるようになる。
【0196】
また、以上のように、上述のブロック境界がサブブロック境界で、隣接するサブブロックが属するCUにアフィン動き補償予測が適用され、Picture HeaderにてPROFが有効である場合に、かかるブロック境界の境界強度が「0」であると判定するように構成されていてもよい。
【0197】
上述のような構成とすることで、画素単位で予測値を洗練化するPROF処理適用後の値に不要にデブロッキングフィルタを適用することを防ぐことができ、主観画質の向上が期待できる。
【0198】
図13に示すように、適応ループフィルタ部250Cは、輝度ALF部256と、Cb CC-ALF部257Aと、Cr CC-ALF部257Bと、Cb ALF部258Aと、Cr ALF部258Bとを有する。
【0199】
輝度ALF部256、Cb ALF部258A、Cr ALF部258Bの処理としては、例えば、非特許文献1に記載の処理を適用可能なため、詳細な説明は省略する。
【0200】
以下、Cb CC-ALF部257A及びCr CC-ALF部257Bの処理内容の一例について説明する。なお、Cb CC-ALF部257Aと、Cr CC-ALF部257Bは、対象がCb信号かCr信号かという点のみが差分であり、処理内容は、同一であるため、以下では、Cb CC-ALF部257Aの動作のみを説明し、Cr CC-ALF部257Bの説明は省略する。
【0201】
図13に示すように、Cb CC-ALF部257Aは、輝度ALF部256でフィルタリング処理を行う前の輝度信号を入力とし、出力した値をCb ALF部258Aの出力に加算することで、Cb信号のフィルタ処理後信号を生成するように構成されている。
【0202】
図14及び
図15は、Cb CC-ALF部257Aでのフィルタリング処理及び境界部分での処理の一例を示す図である。
【0203】
ここでは、例えば、
図14(a)~(e)に示すように、C0~C7の8つのフィルタ係数を
図14のように配置した二次元フィルタを輝度信号に適用し、Cb信号に加算する値を算出する場合を考える。
【0204】
なお、係数C2に対応する輝度信号の画素位置[y][x]が、Cb CC-ALF部257Aで算出した値を加算するCb信号の画素と対応する画素位置とする。
【0205】
Cb信号に加算する値については、例えば、
図15に記載の式で算出することができる。ここで、P[y][x]は、画素位置[y][x]に存在する輝度信号の画素値を意味している。
【0206】
図14(a)~(e)は、仮想境界等の処理境界及びフィルタ係数の配置の関係を示している。ここで、境界とは、規格で定義されたスライスやタイルといった並列処理単位の境界や、パイプライン処理を実現するために設けた仮想境界等、境界の外側に位置する画素の参照を禁止する境界線である。
【0207】
境界で分割された二つの領域のうち、フィルタ係数C2に対応する画素が存在する方を境界の内側、そうでない方を境界の外側と考えることとする。境界の外側に参照画素位置が存在する場合、実際にその位置にある画素値を参照できないため、パディング処理を行う必要がある。具体的には、
図15に記載の表のように、境界及びフィルタ係数の配置のパターンに応じて実際の参照画素位置を変更することで、パディング処理を実現できる。
【0208】
図14(e)は、パディングが必要ない場合の例を示している。パディングが必要ない場合のoffset1~offset3の値は、
図15に記載の表の通りである。
【0209】
一方、例えば、
図14(c)の配置になった際、フィルタ係数C4~C7に対応する画素は、境界の外側にあるため、対応するoffset2及びoffset3の値を「0」にすることで、フィルタリングを実現できる。
【0210】
また、
図14(c)の配置では、フィルタ係数C0に対応する画素は、境界の内側に位置するため参照可能だが、非特許文献1にて、輝度ALF部256、Cb ALF部258A、Cr ALF部258Bで行われているパディング方法(ミラーパディング)と同様な方法とする場合、フィルタ係数C0側もパディングを行うため、offset1も「0」に設定する。
【0211】
ミラーパディングは、
図14(c)におけるフィルタ係数C2が存在する水平方向のラインを中心にフィルタ係数を折り畳んで反転させた場合に境界の外側に出てしまうラインについてもパディングを行う手法である。
【0212】
図14(b)の場合は、offset1に対応するラインが境界の外側にあるため、offset1を「0」に設定し、ミラーパディングの手法に沿ってoffset2及びoffset3も「0」とする。
【0213】
図14(d)の場合、offset3に対応するラインが境界の外側にあるため、offset1とoffset2は、
図14(e)の場合と同一で、offset3のみを「1」に変更する。
【0214】
図14(a)の場合も、フィルタ係数C2が存在するラインを中心にフィルタ係数配置を折り畳むとフィルタ係数C7に対応するラインが境界の外側に出るため、ミラーパディングを行う場合は、offset3を1に修正してパディング処理を行う。
【0215】
一方、
図14(a)の場合は、実際には、境界の外側を参照しているフィルタ係数はないため、パディングは必ずしも必要ではない。よって、
図14(a)の場合も、
図14(e)と同様なoffset値の設定とすることができる。言い換えると、
図14(a)の場合のパディング処理を定義せず、パディング処理が定義されていない場合は、
図14(e)の設定を使うように定めておいてもよい。
【0216】
以上のように、輝度信号を入力とし、出力を色差信号に加算するCC-ALF部において、出力値を加算する色差信号画素に対応する輝度信号画素(上記係数C2に対応する輝度信号画素位置)が境界の1ライン下(上述の(b))或いは境界の1ライン上(上述の(c))の場合に、参照画素位置に加算するオフセットを全て「0」にしてパディング処理を行うように構成することで、例えば、非特許文献1で、輝度ALF部256、Cb ALF部258A、Cr ALF部258Bで行われているパディング方法(ミラーパディング)と同様な方法でパディング処理を行うことが可能となり、制御ロジックを共通化することができる。
【0217】
また、以上のように、輝度信号を入力とし、出力を色差信号に加算するCC-ALF部において、参照画素位置が全て境界内部に存在しているときにはパディング処理を行わず、参照画素位置の少なくとも一つが境界外に存在している場合のみパディング処理を行うように構成してもよい。
【0218】
すなわち、
図14(a)の場合のパディング処理を定義しないようにすることで、不要なパディング処理を排除して符号化効率を高めることができる。
【0219】
(画像符号化装置100)
以下、
図16を参照して、本実施形態に係る画像符号化装置100について説明する。
図16は、本実施形態に係る画像符号化装置100の機能ブロックの一例について示す図である。
【0220】
図16に示すように、画像符号化装置100は、インター予測部111と、イントラ予測部112と、減算器121と、加算器122と、変換・量子化部131と、逆変換・逆量子化部132と、符号化部140と、インループフィルタ処理部150と、フレームバッファ160とを有する。
【0221】
インター予測部111は、インター予測部241と同様に、インター予測(フレーム間予測)によって予測信号を生成するように構成されている。
【0222】
具体的には、インター予測部111は、符号化対象のフレーム(以下、対象フレーム)とフレームバッファ160に格納される参照フレームとの比較によって、参照フレームに含まれる参照ブロックを特定し、特定された参照ブロックに対する動きベクトルを決定するように構成されている。
【0223】
また、インター予測部111は、参照ブロック及び動きベクトルに基づいて予測ブロックに含まれる予測信号を予測ブロック毎に生成するように構成されている。インター予測部111は、予測信号を減算器121及び加算器122に出力するように構成されている。ここで、参照フレームは、対象フレームとは異なるフレームである。
【0224】
イントラ予測部112は、イントラ予測部242と同様に、イントラ予測(フレーム内予測)によって予測信号を生成するように構成されている。
【0225】
具体的には、イントラ予測部112は、対象フレームに含まれる参照ブロックを特定し、特定された参照ブロックに基づいて予測信号を予測ブロック毎に生成するように構成されている。また、イントラ予測部112は、予測信号を減算器121及び加算器122に出力するように構成されている。
【0226】
ここで、参照ブロックは、予測対象のブロック(以下、対象ブロック)について参照されるブロックである。例えば、参照ブロックは、対象ブロックに隣接するブロックである。
【0227】
減算器121は、入力画像信号から予測信号を減算し、予測残差信号を変換・量子化部131に出力するように構成されている。ここで、減算器121は、イントラ予測又はインター予測によって生成される予測信号と入力画像信号との差分である予測残差信号を生成するように構成されている。
【0228】
加算器122は、逆変換・逆量子化部132から出力される予測残差信号に予測信号を加算してフィルタ処理前復号信号を生成し、かかるフィルタ処理前復号信号をイントラ予測部112及びインループフィルタ処理部150に出力するように構成されている。
【0229】
ここで、フィルタ処理前復号信号は、イントラ予測部112で用いる参照ブロックを構成する。
【0230】
変換・量子化部131は、予測残差信号の変換処理を行うとともに、係数レベル値を取得するように構成されている。さらに、変換・量子化部131は、係数レベル値の量子化を行うように構成されていてもよい。
【0231】
ここで、変換処理は、予測残差信号を周波数成分信号に変換する処理である。かかる変換処理では、離散コサイン変換(DCT;Discrete Cosine Transform)に対応する基底パターン(変換行列)が用いられてもよく、離散サイン変換(DST;Discrete Sine Transform)に対応する基底パターン(変換行列)が用いられてもよい。
【0232】
逆変換・逆量子化部132は、逆変換・逆量子化部220と同様に、変換・量子化部131から出力される係数レベル値の逆変換処理を行うように構成されている。ここで、逆変換・逆量子化部132は、逆変換処理に先立って、係数レベル値の逆量子化を行うように構成されていてもよい。
【0233】
ここで、逆変換処理及び逆量子化は、変換・量子化部131で行われる変換処理及び量子化とは逆の手順で行われる。
【0234】
符号化部140は、変換・量子化部131から出力された係数レベル値を符号化し、符号化データを出力するように構成されている。
【0235】
ここで、例えば、符号化は、係数レベル値の発生確率に基づいて異なる長さの符号を割り当てるエントロピー符号化である。
【0236】
また、符号化部140は、係数レベル値に加えて、復号処理で用いる制御データを符号化するように構成されている。
【0237】
なお、上述したように、制御データは、符号化ブロックサイズや予測ブロックサイズや変換ブロックサイズ等のサイズデータを含んでもよい。
【0238】
インループフィルタ処理部150は、インループフィルタ処理部250と同様に、加算器122から出力されるフィルタ処理前復号信号に対してフィルタ処理を行うとともに、フィルタ処理後復号信号をフレームバッファ160に出力するように構成されている。
【0239】
フレームバッファ160は、インター予測部111で用いる参照フレームを蓄積するように構成されている。
【0240】
ここで、フィルタ処理後復号信号は、インター予測部111で用いる参照フレームを構成する。
【0241】
(イントラ予測部112)
以下、
図17を参照して、本実施形態に係るイントラ予測部112について説明する。
図17は、本実施形態に係る画像符号化装置112のイントラ予測部112の機能ブロックの一例について示す図である。
【0242】
図17に示すように、イントラ予測部112は、イントラ予測モード決定部112Aと、イントラ予測モード符号化部112Bと、予測信号生成部112Cとを有する。
【0243】
イントラ予測部112は、イントラ予測(フレーム内予測)によって予測信号を生成するように構成されている予測部の一例である。
【0244】
イントラ予測モード決定部112Aは、当該ブロックのイントラ予測モードやBDPCMの適用有無等、後段のイントラ予測モード符号化部112Bで符号化する情報を決定するように構成されている。決定の方法は、公知の方法を用いることが可能であるため詳細は省略する。
【0245】
イントラ予測モード符号化部112Bは、対象ブロックの予測モードを符号化するように構成されている。処理内容は、イントラ予測モード復号部242Bと同様の処理となる。具体的には、例えば、
図6に示すイントラ予測モード復号部242Bの処理フローチャートのうち「復号」の部分を「符号化」に変更した処理となる。
【0246】
予測信号生成部112Cは、イントラ予測モード112Bで符号化した予測モードにしたがって、当該ブロックの予測信号を生成するように構成されている。予測信号の生成方法は、予測信号生成部242Cと同一である。
【0247】
また、上述の画像符号化装置100及び画像復号装置200は、コンピュータに各機能(各工程)を実行させるプログラムであって実現されていてもよい。
【0248】
なお、上記の各実施形態では、本発明を画像符号化装置100及び画像復号装置200への適用を例にして説明したが、本発明は、かかる例のみに限定されるものではなく、画像符号化装置100及び画像復号装置200の各機能を備えた画像符号化/復号システムにも同様に適用できる。
【0249】
本発明によれば、フレーム内の特定のブロック内がロスレスであることを担保できる機能を備える画像復号装置200、画像復号方法及びプログラムを提供することができる。
【符号の説明】
【0250】
10…画像処理システム
100…画像符号化装置
111、241…インター予測部
112、242…イントラ予測部
112A…イントラ予測モード決定部
112B…イントラ予測モード符号化部
112C、242C…予測信号生成部
121…減算器
122、230…加算器
131…変換・量子化部
132、220…逆変換・逆量子化部
140…符号化部
150、250…インループフィルタ処理部
160、260…フレームバッファ
200…画像復号装置
210…復号部
220A…量子化パラメータ導出部
220B…逆量子化部
220C…逆変換部
242B…イントラ予測モード復号部
250A…デブロッキングフィルタ部
251、251A、251B…ブロック境界検出部
253、253A、253B…境界強度判定部
254、254A、254B…フィルタ決定部
255、255A、255B…フィルタ処理部
250B…SAO部
250C…適応ループフィルタ部
256…輝度ALF部
257A…Cb CC-ALF部
257B…Cr CC-ALF部
258A…Cb-ALF部
258B…Cr-ALF部