IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ シャープ株式会社の特許一覧

特開2024-129196動画像復号装置および動画像符号化装置
<>
  • 特開-動画像復号装置および動画像符号化装置 図1
  • 特開-動画像復号装置および動画像符号化装置 図2
  • 特開-動画像復号装置および動画像符号化装置 図3
  • 特開-動画像復号装置および動画像符号化装置 図4
  • 特開-動画像復号装置および動画像符号化装置 図5
  • 特開-動画像復号装置および動画像符号化装置 図6
  • 特開-動画像復号装置および動画像符号化装置 図7
  • 特開-動画像復号装置および動画像符号化装置 図8
  • 特開-動画像復号装置および動画像符号化装置 図9
  • 特開-動画像復号装置および動画像符号化装置 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024129196
(43)【公開日】2024-09-27
(54)【発明の名称】動画像復号装置および動画像符号化装置
(51)【国際特許分類】
   H04N 19/11 20140101AFI20240919BHJP
   H04N 19/176 20140101ALI20240919BHJP
   H04N 19/147 20140101ALI20240919BHJP
   H04N 19/136 20140101ALI20240919BHJP
   H04N 19/593 20140101ALI20240919BHJP
【FI】
H04N19/11
H04N19/176
H04N19/147
H04N19/136
H04N19/593
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2023038230
(22)【出願日】2023-03-13
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和4年度、国立研究開発法人情報通信研究機構、「Beyond 5G研究開発促進事業(一般型)/日米豪国際連携を通じた超カバレッジBeyond 5G無線通信・映像符号化標準化技術の研究開発」、産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】000005049
【氏名又は名称】シャープ株式会社
(74)【代理人】
【識別番号】100161207
【弁理士】
【氏名又は名称】西澤 和純
(74)【代理人】
【識別番号】100129115
【弁理士】
【氏名又は名称】三木 雅夫
(74)【代理人】
【識別番号】100133569
【弁理士】
【氏名又は名称】野村 進
(74)【代理人】
【識別番号】100131473
【弁理士】
【氏名又は名称】覚田 功二
(72)【発明者】
【氏名】八杉 将伸
(72)【発明者】
【氏名】猪飼 知宏
(72)【発明者】
【氏名】青野 友子
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MA21
5C159MC11
5C159ME01
5C159RC12
5C159TA31
5C159TB08
5C159TC08
5C159TC18
5C159TC42
5C159TD13
5C159UA02
5C159UA05
5C159UA16
(57)【要約】
【課題】
従来のイントラ予測モード単位のテンプレート予測画像とテンプレート画像の差分に基づいたTIMD予測モード導出は、テンプレート画像の導出とコスト計算に多くの計算量を要するという課題があった。
【解決手段】
本実施例の動画像復号装置は、テンプレート予測画像とテンプレート画像から導出したコストに基づいて対象ブロックのイントラ予測モードを選択するTIMD予測において、所定のイントラ予測モード候補を予測方向に基づいて複数のグループに分割し、各グループから選択したイントラ予測モード候補毎にテンプレート予測画像を生成してコストを評価し、最もコストが低いイントラ予測モード候補が属するグループでは、前記選択した候補以外のモードについてもコストの導出と選択を行う。
【選択図】図7
【特許請求の範囲】
【請求項1】
対象ブロック近傍のテンプレート参照領域の画像を用いて、所定のイントラ予測モード候補に対するテンプレート予測画像を生成するテンプレート予測画像生成部と、
前記テンプレート予測画像と前記テンプレート画像からコストを導出するテンプレートコスト導出部と、
前記コストに基づいて前記対象ブロックのイントラ予測モードを選択するイントラ予測モード選択部を備え、
前記イントラ予測モード導出部は、所定のイントラ予測モード候補を複数のグループに分割し、各グループから選択したイントラ予測モード候補毎にテンプレート予測画像を生成してコストを評価し、最もコストが低いイントラ予測モード候補が属するグループでは、前記選択したイントラ予測モード候補以外のモードについてもコストの導出と選択を行うことを特徴とする動画像復号装置。
【請求項2】
前記イントラ予測モード導出部は、所定のイントラ方向予測モード候補を予測方向に基づいて複数のグループに分割し、各グループから選択したイントラ予測モード候補毎にテンプレート予測画像を生成してコストを評価し、最もコストが低いイントラ予測モード候補が属するグループでは、前記選択したイントラ予測モード候補以外のモードについてもコストの導出と選択を行うことを特徴とする請求項1に記載の動画像復号装置。
【請求項3】
前記イントラ予測モード導出部は、所定のイントラ方向予測モード候補をグループの要素数の差が高々1個になるように複数のグループに分割し、各グループから選択したイントラ予測モード候補毎にテンプレート予測画像を生成してコストを評価し、最もコストが低いイントラ予測モード候補が属するグループでは、前記選択したイントラ予測モード候補以外のモードについてもコストの導出と選択を行うことを特徴とする請求項1に記載の動画像復号装置。
【請求項4】
対象ブロック近傍のテンプレート参照領域の画像を用いて、所定のイントラ予測モード候補に対するテンプレート予測画像を生成するテンプレート予測画像生成部と、
前記テンプレート予測画像と前記テンプレート画像からコストを導出するテンプレートコスト導出部と、
前記コストに基づいて前記対象ブロックのイントラ予測モードを選択するイントラ予測モード選択部を備え、
前記イントラ予測モード導出部は、所定のイントラ予測モード候補を複数のグループに分割し、各グループから選択したイントラ予測モード候補毎にテンプレート予測画像を生成してコストを評価し、最もコストが低いイントラ予測モード候補が属するグループでは、前記選択したイントラ予測モード候補以外のモードについてもコストの導出と選択を行うことを特徴とする動画像符号化装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、動画像復号装置および動画像符号化装置に関する。
【背景技術】
【0002】
動画像を効率的に伝送または記録するために、動画像を符号化することによって符号化データを生成する動画像符号化装置、および、当該符号化データを復号することによって復号画像を生成する動画像復号装置が用いられている。
【0003】
具体的な動画像符号化方式としては、例えば、H.264/AVCやHEVC(High-Efficiency Video Coding)、VVC(Versatile Video Coding)方式などが挙げられる。
【0004】
このような動画像符号化方式においては、動画像を構成する画像(ピクチャ)は、画像を分割することにより得られるスライス、スライスを分割することにより得られる符号化ツリーユニット(CTU:Coding Tree Unit)、符号化ツリーユニットを分割することで得られる符号化単位(符号化ユニット(Coding Unit:CU)と呼ばれることもある)、及び、符号化単位を分割することより得られる変換ユニット(TU:Transform Unit)からなる階層構造により管理され、CU毎に符号化/復号される。
【0005】
また、このような動画像符号化方式においては、通常、入力画像を符号化/復号することによって得られる局所復号画像に基づいて予測画像が生成され、当該予測画像を入力画像(原画像)から減算して得られる予測誤差(「差分画像」または「残差画像」と呼ぶこともある)が符号化される。予測画像の生成方法としては、画面間予測(インター予測)、および、画面内予測(イントラ予測)が挙げられる。
【0006】
また、近年の動画像符号化及び復号の技術として非特許文献1が挙げられる。非特許文献1には、デコーダが隣接領域の画素を用いてイントラ方向予測モード番号を導出することにより予測画像を生成するテンプレートベースイントラモード導出(Template based Intra Mode Derivation, TIMD)予測が開示されている。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】K. Cao, N. Hu, V. Seregin, M. Karczewicz, Y. Wang, K. Zhang, L. Zhang, “EE2-related: Fusion for template-based intra mode derivation”, JVET-W0123, July 2021
【発明の概要】
【発明が解決しようとする課題】
【0008】
非特許文献1のようなテンプレートベースイントラモード導出では、対象ブロックの付近のテンプレート参照領域の画像を用いて、イントラ予測モード候補に対する対象ブロックの隣接画像(テンプレート画像)からテンプレート予測画像を生成する。そして、テンプレート画像とテンプレート予測画像のコストが小さくなるイントラ予測モード候補を、対象ブロックのイントラ予測モードとして選択する。しかしながら、複数のイントラ予測モード候補に対するテンプレート予測画像の導出とコスト計算が必要であり、計算量が非常に大きいという課題がある。
【0009】
本発明は、テンプレートベースイントラモード導出の複雑度を低減することを目的とする。
【課題を解決するための手段】
【0010】
本実施例の動画像復号装置は、テンプレート領域とテンプレート参照領域の画像を用いて、テンプレート画像と所定のイントラ予測モード候補に対するテンプレート予測画像を生成し、テンプレート予測画像とテンプレート画像から導出したコストに基づいて、対象ブロックのイントラ予測モードを選択するTIMD予測において、所定のイントラ予測モード候補を予測方向に基づいて複数のグループに分割し、各グループから選択したイントラ予測モード候補毎にテンプレート予測画像を生成してコストを評価し、最もコストが低いイントラ予測モード候補が属するグループでは、前記選択したイントラ予測モード候補以外の候補についてもコストの導出と選択を行うことを特徴とする。
【発明の効果】
【0011】
本発明の一態様によれば、テンプレートベースイントラモード導出の複雑度を低減することができる。
【図面の簡単な説明】
【0012】
図1】本実施形態に係る画像伝送システムの構成を示す概略図である。
図2】符号化ストリームのデータの階層構造を示す図である。
図3】イントラ予測モードの種類(モード番号)を示す概略図である。
図4】動画像復号装置の構成を示す概略図である。
図5】イントラ予測画像生成部の構成を示す図である。
図6】対象ブロック、テンプレート領域、テンプレート参照領域の関係を示す図である。
図7】TIMD予測部の詳細を示す図である。
図8】対象ブロック、テンプレート領域、テンプレート参照領域の関係を示す図である。
図9】TIMDのグループの一例を示す図である。
図10】動画像符号化装置の構成を示すブロック図である。
【発明を実施するための形態】
【0013】
(第1の実施形態)
以下、図面を参照しながら本発明の実施形態について説明する。
【0014】
図1は、本実施形態に係る画像伝送システム1の構成を示す概略図である。
【0015】
画像伝送システム1は、符号化対象画像を符号化した符号化ストリームを伝送し、伝送された符号化ストリームを復号し画像を表示するシステムである。画像伝送システム1は、動画像符号化装置(画像符号化装置)11、ネットワーク21、動画像復号装置(画像復号装置)31、及び動画像表示装置(画像表示装置)41を含んで構成される。
【0016】
動画像符号化装置11には画像Tが入力される。
【0017】
ネットワーク21は、動画像符号化装置11が生成した符号化ストリームTeを動画像復号装置31に伝送する。ネットワーク21は、インターネット(Internet)、広域ネットワーク(WAN:Wide Area Network)、小規模ネットワーク(LAN:Local Area Network)またはこれらの組み合わせである。ネットワーク21は、必ずしも双方向の通信網に限らず、地上デジタル放送、衛星放送等の放送波を伝送する一方向の通信網であってもよい。また、ネットワーク21は、DVD(Digital Versatile Disc:登録商標)、BD(Blu-ray Disc:登録商標)等の符号化ストリームTeを記録した記憶媒体で代替されてもよい。
【0018】
動画像復号装置31は、ネットワーク21が伝送した符号化ストリームTeのそれぞれを復号し、復号した1または複数の復号画像Tdを生成する。
【0019】
動画像表示装置41は、動画像復号装置31が生成した1または複数の復号画像Tdの全部または一部を表示する。動画像表示装置41は、例えば、液晶ディスプレイ、有機EL(Electro-luminescence)ディスプレイ等の表示デバイスを備える。ディスプレイの形態としては、据え置き、モバイル、HMD等が挙げられる。また、動画像復号装置31が高い処理能力を有する場合には、画質の高い画像を表示し、より低い処理能力しか有しない場合には、高い処理能力、表示能力を必要としない画像を表示する。
【0020】
<演算子>
本明細書で用いる演算子を以下に記載する。
【0021】
>>は右ビットシフト、<<は左ビットシフト、&はビットワイズAND、|はビットワイズOR、^はビットワイズXOR、|=はOR代入演算子であり、!は論理否定(NOT)、&&は論理積(AND)、||は論理和(OR)を示す。
【0022】
x?y:zは、xが真(0以外)の場合にy、xが偽(0)の場合にzをとる3項演算子である。
【0023】
Clip3(a,b,c)は、cをa以上b以下の値にクリップする関数であり、c<aの場合にはaを返し、c>bの場合にはbを返し、その他の場合にはcを返す関数である(ただし、a<=b)。
【0024】
Clip1Y(c)は、Clip3(a,b,c)においてa=0、b=(1<<BitDepthY)-1に設定した演算子である。BitDepthYは輝度のビット深度である。
【0025】
abs(a)はaの絶対値を返す関数である。
【0026】
Int(a)はaの整数値を返す関数である。
【0027】
Floor(a)はa以下の最大の整数を返す関数である。
【0028】
Log2(a)は2を底とする対数を返す関数である。
【0029】
Ceil(a)はa以上の最小の整数を返す関数である。
【0030】
a/dはdによるaの除算(小数点以下切り捨て)を表す。
【0031】
Min(a,b)はaとbのうち小さい値を返す関数である。
【0032】
<符号化ストリームTeの構造>
本実施形態に係る動画像符号化装置11および動画像復号装置31の詳細な説明に先立って、動画像符号化装置11によって生成され、動画像復号装置31によって復号される符号化ストリームTeのデータ構造について説明する。
【0033】
図2は、符号化ストリームTeにおけるデータの階層構造を示す図である。符号化ストリームTeは、例示的に、シーケンス、およびシーケンスを構成する複数のピクチャを含む。図2には、それぞれ、シーケンスSEQを既定する符号化ビデオシーケンス、ピクチャPICTを規定する符号化ピクチャ、スライスSを規定する符号化スライス、スライスデータを規定する符号化スライスデータ、符号化スライスデータに含まれる符号化ツリーユニット、符号化ツリーユニットに含まれる符号化ユニットを示す図が示されている。
【0034】
(符号化ビデオシーケンス)
符号化ビデオシーケンスでは、処理対象のシーケンスSEQを復号するために動画像復号装置31が参照するデータの集合が規定されている。シーケンスSEQは、図2の符号化ビデオシーケンスに示すように、ビデオパラメータセットVPS(Video Parameter Set)、シーケンスパラメータセットSPS(Sequence Parameter Set)、ピクチャパラメータセットPPS(Picture Parameter Set)、ピクチャPICT、及び、付加拡張情報SEI(Supplemental Enhancement Information)を含んでいる。
【0035】
ビデオパラメータセットVPSは、複数のレイヤから構成されている動画像において、複数の動画像に共通する符号化パラメータの集合および動画像に含まれる複数のレイヤおよび個々のレイヤに関連する符号化パラメータの集合が規定されている。
【0036】
シーケンスパラメータセットSPSでは、対象シーケンスを復号するために動画像復号装置31が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの幅や高さが規定される。なお、SPSは複数存在してもよい。その場合、PPSから複数のSPSの何れかを選択する。
【0037】
ピクチャパラメータセットPPSでは、対象シーケンス内の各ピクチャを復号するために動画像復号装置31が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの復号に用いられる量子化幅の基準値(pic_init_qp_minus26)や重み付き予測の適用を示すフラグ(weighted_pred_flag)が含まれる。なお、PPSは複数存在してもよい。その場合、対象シーケンス内の各ピクチャから複数のPPSの何れかを選択する。
【0038】
(符号化ピクチャ)
符号化ピクチャでは、処理対象のピクチャPICTを復号するために動画像復号装置31が参照するデータの集合が規定されている。ピクチャPICTは、図2の符号化ピクチャに示すように、スライス0~スライスNS-1を含む(NSはピクチャPICTに含まれるスライスの総数)。
【0039】
なお、以下、スライス0~スライスNS-1のそれぞれを区別する必要が無い場合、符号の添え字を省略して記述することがある。また、以下に説明する符号化ストリームTeに含まれるデータであって、添え字を付している他のデータについても同様である。
【0040】
(符号化スライス)
符号化スライスでは、処理対象のスライスSを復号するために動画像復号装置31が参照するデータの集合が規定されている。スライスは、図2の符号化スライスに示すように、スライスヘッダ、および、スライスデータを含んでいる。
【0041】
スライスヘッダには、対象スライスの復号方法を決定するために動画像復号装置31が参照する符号化パラメータ群が含まれる。スライスタイプを指定するスライスタイプ指定情報(slice_type)は、スライスヘッダに含まれる符号化パラメータの一例である。
【0042】
スライスタイプ指定情報により指定可能なスライスタイプとしては、(1)符号化の際にイントラ予測のみを用いるIスライス、(2)符号化の際に単方向予測、または、イントラ予測を用いるPスライス、(3)符号化の際に単方向予測、双方向予測、または、イントラ予測を用いるBスライスなどが挙げられる。なお、インター予測は、単予測、双予測に限定されず、より多くの参照ピクチャを用いて予測画像を生成してもよい。以下、P、Bスライスと呼ぶ場合には、インター予測を用いることができるブロックを含むスライスを指す。
【0043】
なお、スライスヘッダは、ピクチャパラメータセットPPSへの参照(pic_parameter_set_id)を含んでいてもよい。
【0044】
(符号化スライスデータ)
符号化スライスデータでは、処理対象のスライスデータを復号するために動画像復号装置31が参照するデータの集合が規定されている。スライスデータは、図2の符号化スライスヘッダに示すように、CTUを含んでいる。CTUは、スライスを構成する固定サイズ(例えば64x64)のブロックであり、最大符号化単位(LCU:Largest Coding Unit)と呼ぶこともある。
【0045】
(符号化ツリーユニット)
図2の符号化ツリーユニットには、処理対象のCTUを復号するために動画像復号装置31が参照するデータの集合が規定されている。CTUは、再帰的な4分木分割(QT(Quad Tree)分割)、2分木分割(BT(Binary Tree)分割)あるいは3分木分割(TT(Ternary Tree)分割)により符号化処理の基本的な単位である符号化ユニットCUに分割される。BT分割とTT分割を合わせてマルチツリー分割(MT(Multi Tree)分割)と呼ぶ。再帰的な4分木分割により得られる木構造のノードのことを符号化ノード(Coding Node)と称する。4分木、2分木、及び3分木の中間ノードは、符号化ノードであり、CTU自身も最上位の符号化ノードとして規定される。
【0046】
(符号化ユニット)
図2の符号化ユニットに示すように、処理対象の符号化ユニットを復号するために動画像復号装置31が参照するデータの集合が規定されている。具体的には、CUは、CUヘッダCUH、予測パラメータ、変換パラメータ、量子化変換係数等から構成される。CUヘッダでは予測モード等が規定される。
【0047】
予測処理は、CU単位で行われる場合と、CUをさらに分割したサブCU単位で行われる場合がある。CUとサブCUのサイズが等しい場合には、CU中のサブCUは1つである。CUがサブCUのサイズよりも大きい場合、CUは、サブCUに分割される。例えばCUが8x8、サブCUが4x4の場合、CUは水平2分割、垂直2分割からなる、4つのサブCUに分割される。
【0048】
予測の種類(予測モード)は、イントラ予測と、インター予測の2つがある。イントラ予測は、同一ピクチャ内の予測であり、インター予測は、互いに異なるピクチャ間(例えば、表示時刻間、レイヤ画像間)で行われる予測処理を指す。
【0049】
変換・量子化処理はCU単位で行われるが、量子化変換係数は4x4等のサブブロック単位でエントロピー符号化してもよい。
【0050】
(予測パラメータ)
予測画像は、ブロックに付随する予測パラメータによって導出される。予測パラメータには、イントラ予測とインター予測の予測パラメータがある。
【0051】
以下、イントラ予測の予測パラメータについて説明する。イントラ予測パラメータは、輝度予測モードIntraPredModeY、色差予測モードIntraPredModeCから構成される。図3は、イントラ予測モードの種類(モード番号)を示す概略図である。図に示すように、イントラ予測モードは、例えば67種類(0~66)存在する。例えば、プレーナ予測(0)、DC予測(1)、Angular予測(2~66)である。この他、色成分間線形モデル(CCLM: Cross Component Linear Model)予測や、マルチモード線形モデル(MMLM: Multi Mode Linear Model)予測といったリニアモデル(LM: Linear Model)予測を用いてもよい。さらに、色差ではLMモードを追加してもよい。
【0052】
(動画像復号装置の構成)
本実施形態に係る動画像復号装置31(図4)の構成について説明する。
【0053】
動画像復号装置31は、エントロピー復号部301、パラメータ復号部(予測画像復号装置)302、ループフィルタ305、参照ピクチャメモリ306、予測パラメータメモリ307、予測画像生成部(予測画像生成装置)308、逆量子化・逆変換部311、及び加算部312、予測パラメータ導出部320を含んで構成される。なお、後述の動画像符号化装置11に合わせ、動画像復号装置31にループフィルタ305が含まれない構成もある。
【0054】
パラメータ復号部302は、さらに、ヘッダ復号部3020、CT情報復号部3021、及びCU復号部3022(予測モード復号部)を備えており、CU復号部3022はさらにTU復号部3024を備えている。これらを総称して復号モジュールと呼んでもよい。ヘッダ復号部3020は、符号化データからVPS、SPS、PPS、APSなどのパラメータセット情報、スライスヘッダ(スライス情報)を復号する。CT情報復号部3021は、符号化データからCTを復号する。CU復号部3022は符号化データからCUを復号する。TU復号部3024は、TUに予測誤差が含まれている場合に、符号化データからQP更新情報(量子化補正値)と量子化予測誤差(residual_coding)を復号する。
【0055】
TU復号部3024は、スキップモード以外(skip_mode==0)の場合に、符号化データからQP更新情報と量子化予測誤差を復号する。より具体的には、TU復号部3024は、skip_mode==0の場合に、対象ブロックに量子化予測誤差が含まれているか否かを示すフラグcu_cbpを復号し、cu_cbpが1の場合に量子化予測誤差を復号する。cu_cbpが符号化データに存在しない場合は0と導出する。
【0056】
予測画像生成部308は、インター予測画像生成部309及びイントラ予測画像生成部310を含んで構成される。
【0057】
予測パラメータ導出部320は、インター予測パラメータ導出部303及びイントラ予測パラメータ導出部304を含んで構成される。
【0058】
また、以降では処理の単位としてCTU、CUを使用した例を記載するが、この例に限らず、サブCU単位で処理をしてもよい。あるいはCTU、CUをブロック、サブCUをサブブロックと読み替え、ブロックあるいはサブブロック単位の処理としてもよい。
【0059】
エントロピー復号部301は、外部から入力された符号化ストリームTeに対してエントロピー復号を行って、個々の符号(シンタックス要素)を復号する。エントロピー符号化には、シンタックス要素の種類や周囲の状況に応じて適応的に選択したコンテキスト(確率モデル)を用いてシンタックス要素を可変長符号化する方式CABAC(Context Adaptive Binary Arithmetic Coding)と、あらかじめ定められた表、あるいは計算式を用いてシンタックス要素を可変長符号化する方式がある。エントロピー復号部301は、セグメント(タイル、CTU行、スライス)の先頭で全てのCABAC状態を初期化する。エントロピー復号部301は、シンタックス要素をバイナリ列(Bin String)に変換し、Bin Stringの各ビットを復号する。コンテキストを用いる場合には、シンタックス要素の各ビットに対してコンテキストインデックスctxIncを導出し、コンテキストを用いてビットを復号し、用いたコンテキストのCABAC状態を更新する。コンテキストを用いないビットは、等確率(EP, bypass)で復号され、ctxInc導出やCABAC状態は省略される。
【0060】
エントロピー復号部301は、復号した符号をパラメータ復号部302に出力する。どの符号を復号するかの制御は、パラメータ復号部302の指示に基づいて行われる。
【0061】
(イントラ予測パラメータ導出部304の構成)
イントラ予測パラメータ導出部304は、エントロピー復号部301から入力された符号に基づいて、予測パラメータメモリ307に記憶された予測パラメータを参照してイントラ予測パラメータ、例えば、イントラ予測モードIntraPredModeを復号する。イントラ予測パラメータ導出部304は、復号したイントラ予測パラメータを予測画像生成部308に出力し、また予測パラメータメモリ307に記憶する。イントラ予測パラメータ導出部304は、輝度と色差で異なるイントラ予測モードを導出してもよい。
【0062】
ループフィルタ305は、符号化ループ内に設けたフィルタで、ブロック歪やリンギング歪を除去し、画質を改善するフィルタである。ループフィルタ305は、加算部312が生成したCUの復号画像に対し、デブロッキングフィルタ、サンプル適応オフセット(SAO)、適応ループフィルタ(ALF)等のフィルタを施す。
【0063】
参照ピクチャメモリ306は、加算部312が生成したCUの復号画像を、対象ピクチャ及び対象CU毎に予め定めた位置に記憶する。
【0064】
予測パラメータメモリ307は、復号対象のCTUあるいはCU毎に予め定めた位置に予測パラメータを記憶する。具体的には、予測パラメータメモリ307は、パラメータ復号部302が復号したパラメータ及びエントロピー復号部301が分離した予測モードpredMode等を記憶する。
【0065】
予測画像生成部308には、予測モードpredMode、予測パラメータ等が入力される。また、予測画像生成部308は、参照ピクチャメモリ306から参照ピクチャを読み出す。予測画像生成部308は、予測モードpredModeが示す予測モードで、予測パラメータと読み出した参照ピクチャ(参照ピクチャブロック)を用いてブロックもしくはサブブロックの予測画像を生成する。ここで、参照ピクチャブロックとは、参照ピクチャ上の画素の集合(通常矩形であるのでブロックと呼ぶ)であり、予測画像を生成するために参照する領域である。
【0066】
(イントラ予測画像生成部310)
予測モードpredModeがイントラ予測モードを示す場合、イントラ予測画像生成部310は、イントラ予測パラメータ導出部304から入力されたイントラ予測パラメータと参照ピクチャメモリ306から読み出した参照画素を用いてイントラ予測を行う。
【0067】
具体的には、イントラ予測画像生成部310は、対象ピクチャ上の、対象ブロックから予め定めた範囲にある隣接ブロックを参照ピクチャメモリ306から読み出す。予め定めた範囲とは、対象ブロックの左、左上、上、右上の隣接ブロックであり、イントラ予測モードによって参照する領域は異なる。
【0068】
イントラ予測画像生成部310は、読み出した復号画素値とIntraPredModeが示す予測モードを参照して、対象ブロックの予測画像を生成する。イントラ予測画像生成部310は生成したブロックの予測画像を加算部312に出力する。
【0069】
イントラ予測モードに基づく予測画像の生成について以下で説明する。Planar予測、DC予測、Angular予測では、予測対象ブロックに隣接(近接)する復号済みの周辺領域を参照領域Rとして設定する。そして、参照領域R上の画素を特定の方向に外挿することで予測画像を生成する。例えば、参照領域Rは、予測対象ブロックの左と上(あるいは、さらに、左上、右上、左下)を含むL字型の領域として設定してもよい。
【0070】
(予測画像生成部の詳細)
次に、図5を用いてイントラ予測画像生成部310の構成の詳細を説明する。イントラ予測画像生成部310は、参照サンプルフィルタ部3103(第2の参照画像設定部)、予測部3104、および、予測画像補正部3105(予測画像補正部、フィルタ切替部、重み係数変更部)を備える。
【0071】
予測部3104は、参照領域R上の各参照画素(参照画像)、参照画素フィルタ(第1のフィルタ)を適用して生成したフィルタ済参照画像、イントラ予測モードに基づいて、予測対象ブロックの予測画像(補正前予測画像)を生成し、予測画像補正部3105に出力する。予測画像補正部3105は、イントラ予測モードに応じて予測画像を修正し、予測画像(補正済予測画像)を生成し、出力する。
【0072】
以下、イントラ予測画像生成部310が備える各部について説明する。
【0073】
(参照サンプルフィルタ部3103)
参照サンプルフィルタ部3103は、参照画像を参照して参照領域R上の各位置(x,y)の参照サンプルrecSamples[x][y]を導出する。また、参照サンプルフィルタ部3103は、イントラ予測モードに応じて、参照サンプルrecSamples[x][y]に参照画素フィルタ(第1のフィルタ)を適用して、参照領域R上の各位置(x,y)の参照サンプルrecSamples[x][y]を更新する(フィルタ済参照画像recSamples[x][y]を導出する)。具体的には、位置(x,y)とその周辺の参照画像にローパスフィルタを適用し、フィルタ済参照画像を導出する。なお、必ずしも全イントラ予測モードにローパスフィルタを適用する必要はなく、一部のイントラ予測モードに対してローパスフィルタを適用してもよい。なお、参照サンプルフィルタ部3103において参照領域R上の参照画像に適用するフィルタを「参照画素フィルタ(第1のフィルタ)」と呼称するのに対し、後述の予測画像補正部3105において予測画像を補正するフィルタを「ポジション依存フィルタ(第2のフィルタ)」と呼称する。
【0074】
(予測部3104の構成)
予測部3104は、イントラ予測モードと、参照画像、フィルタ済参照画素値に基づいて予測対象ブロックの予測画像を生成し、予測画像補正部3105に出力する。予測部3104は、内部にPlanar予測部31041、DC予測部31042、Angular予測部31043、LM予測部31044、MIP(Matrix-based Intra Prediction)部31045、TIMD予測部31047(Template-based Intra Mode Derivation, TIMD)を備えている。予測部3104は、イントラ予測モードに応じて特定の予測部を選択して、参照画像、フィルタ済参照画像を入力する。イントラ予測モードと対応する予測部との関係は次の通りである。
・Planar予測 ・・・・Planar予測部31041
・DC予測 ・・・・DC予測部31042
・Angular予測 ・・・・Angular予測部31043
・LM予測 ・・・・LM予測部31044
・行列イントラ予測・・MIP部31045
・TIMD予測・・・・・・TIMD予測部3104
【0075】
(Planar予測)
Planar予測部31041は、予測対象画素位置と参照画素位置との距離に応じて参照サンプルrecSamples[x][y]を線形加算して予測画像を生成し、予測画像補正部3105に出力する。
【0076】
(DC予測)
DC予測部31042は、参照サンプルrecSamples[x][y]の平均値に相当するDC予測値を導出し、DC予測値を画素値とする予測画像predSamples[x][y]を出力する。
【0077】
(Angular予測)
Angular予測部31043は、イントラ予測モードの示す予測方向(参照方向)の参照サンプルrecSamples[x][y]を用いて予測画像predSamples[x][y]を生成し、予測画像補正部3105に出力する。
IntraPredMode >= DIRの場合、以下の処理を行う。
【0078】
ref[x] = recSamples[-1-refIdx+x][-1-refIdx] (x=0..cbWidth+refIdx+1)
さらにx=0..cbWidth-1,y = 0..cbHeight-1に対して以下を行う。
【0079】
iIdx = (((y+1+refIdx) * intraPredAngle) >> 5) + refIdx
iFact = ((y+1+refIdx) * intraPredAngle) & 31
predSamples[x][y] = Clip1(((Σ(fT[i]*ref[x+iIdx+i])) + 32) >> 6)
それ以外の場合(IntraPredMode < DIR)、以下の処理を行う。
【0080】
ref[x] = recSamples[-1-refIdx][-1-refIdx+x] (x=0..cbHeight+refIdx+1)
さらにx=0..cbWidth-1,y = 0..cbHeight-1に対して以下を行う。
【0081】
iIdx = (((x+1+refIdx) * intraPredAngle) >> 5) + refIdx
iFact = ((x+1+refIdx) * intraPredAngle) & 31
predSamples[x][y] = Clip1(((Σ(fT[i]*ref[y+iIdx+i])) + 32) >> 6)
DIR, refIdxは所定の定数、例えばDIR=34, 66など。refIdx=0, 1, 2など。angular予測の場合、refIdxは符号化データのシンタックスを復号して設定してもよい。また、後述のTIMD予測の予測画像生成の場合にはrefIdx=0と固定としてもよい。またテンプレート予測画像の生成に用いる場合には、refIdx=2もしくは4を用いてもよい。
【0082】
(LM予測)
LM予測部31044は、輝度の画素値に基づいて色差の画素値を予測する。具体的には、復号した輝度画像をもとに、線形モデルを用いて、色差画像(Cb、Cr)の予測画像を生成する方式である。LM予測の1つとして、CCLM(Cross-Component Linear Model)予測がある。CCLM予測は、1つのブロックに対し、輝度から色差を予測するための線形モデルを使用する予測方式である。
【0083】
(行列イントラ予測)
MIP部31045は、隣接領域から導出した参照サンプルrecSamples[x][y]と重み行列の積和演算により予測画像predSamples[x][y]を生成し、予測画像補正部3105に出力する。
【0084】
(予測画像補正部3105の構成)
予測画像補正部3105は、イントラ予測モードに応じて、予測部3104から出力された予測画像を修正する。具体的には、予測画像補正部3105は、予測画像の各画素に対し、参照領域Rと対象予測画素の位置に応じて、ポジションに依存した重み係数を導出する。そして、参照サンプルrecSamples[][]と予測画像predSamples[x][y]を重み付け加算(加重平均)することで、修正した予測画像(補正済予測画像)Pred[][]を導出する。なお、一部のイントラ予測モードでは、予測画像補正部3105で予測画像predSamples[x][y]を補正せずPredにセットしてもよい。
【0085】
(MPMの導出方法)
イントラ予測パラメータ導出部304は、以下のようにMost Probable Mode(MPM)リストcandModeListを導出する。対象ブロックの左上座標を(x0,y0)、ブロック幅をcbWidth、ブロック高さをcbHeightとする。
【0086】
イントラ予測パラメータ導出部304は、対象ブロックの左に隣接するブロックAのintraPredModeをintraPredModeA、上に隣接するブロックBのintraPredModeをintraPredModeBとして、以下で導出してもよい。ブロックA(以下A)は座標(x0-1, y0+cbHeight-1)を含むブロックである。ブロックB(以下B)は座標(x0+cbWidth-1, y0-1)を含むブロックである。
【0087】
candModePredModeA = (Aが利用可能ではない || AがMODE_INTRA以外) ? INTRA_PLANAR : intraPredModeA
candModePredModeB = (Bが利用可能ではない || BがMODE_INTRA以外 || Bの位置が対象ブロックの上側CTU境界より上) ? INTRA_PLANAR : intraPredModeB
なお、CTU境界より上は、y0-1 < ((y0>>CtbLog2SizeY)<<CtbLog2SizeY)が真か否かで判定できる。ここでCtbLog2SizeY=Log2(CTUサイズ)である。CTUサイズは、符号化データ中のシンタックス要素sps_log2_ctu_size_minus5を復号して、CtbLog2SizeY=sps_log2_ctu_size_minus5+5で導出してもよい。candModeList[]はcandModePredModeAとcandModePredModeBから、以下のように導出してもよい。
【0088】
candModeList[0] = candIntraPredModeA
candModeList[1] = candIntraPredModeB
minAB = Min(candIntraPredModeA, candIntraPredModeB)
candModeList[2] = 2 + ((minAB + 61) % 64)
candModeList[3] = 2 + ((minAB - 1) % 64)
candModeList[4] = 2 + ((minAB + 60) % 64
【0089】
(TIMD予測)
TIMD予測は、明示的にシグナルされないイントラ予測モードを用いて予測画像を生成する予測方式である。TIMD予測部31047は、対象ブロックの隣接領域であるテンプレート領域RTの画像(テンプレート画像tempSamples)の予測に適したイントラ予測モードを導出する。具体的には、テンプレート領域の付近の参照領域(テンプレート参照領域)RTRSの画像を用いて、複数のイントラ予測モード候補に対する、テンプレート領域RTの予測画像tpredSamples(テンプレート予測画像)を生成する。そして、tempSamplesとtpredSamplesのコスト(例えば差分絶対値和)が最小となるtpredSamplesの導出に用いたイントラ予測モード候補を、対象ブロックのTIMDのイントラ予測モードとして選択する。TIMD予測部31047はこのTIMDのイントラ予測モードを用いて予測画像predSamplesを生成する。
【0090】
(実施例1)
パラメータ復号部302は、符号化データからブロック毎にTIMDを用いるかどうかを示すフラグtimd_flagを復号する。ブロックは、CU、TU、サブブロック等であってもよい。対象ブロックのtimd_flagが0の場合、パラメータ復号部302は、イントラ予測モードに関するシンタックス要素(intra_luma_mpm_flag、intra_luma_mpm_idx、intra_luma_mpm_reminder等)を復号する。timd_flagが1の場合、パラメータ復号部302は、イントラ予測モードに関するシンタックス要素を符号化データから復号しなくてもよい。具体的には、対象ブロックのtimd_flagが0の場合、パラメータ復号部302は、intra_luma_mpm_flagを復号し、intra_luma_mpm_flagが0の場合、さらにintra_luma_mpm_reminderを復号する。intra_luma_mpm_flagが1の場合、intra_luma_mpm_idxを復号する。intra_luma_mpm_flagは、イントラ予測候補リストcandModeList[]を用いてイントラ予測モードを導出するか否かを示すフラグである。intra_luma_mpm_idxは、candModeList[]を利用する場合にイントラ予測候補を指定するインデックスである。intra_luma_mpm_reminderは、candModeList[]に含まれないイントラ予測候補を選択するインデックスである。
【0091】
(参照領域の選択)
図6は、TIMD予測で参照するテンプレート領域RTとテンプレート参照領域(テンプレート参照サンプル領域)RTRSを示す。テンプレート領域はテンプレート画像に対応する領域である。テンプレート参照領域RTRSはテンプレート画像の予測画像であるテンプレート予測画像を生成する時に参照する領域である。
【0092】
timd_flagが1の場合、TIMD予測部31047は、対象ブロック付近のテンプレート参照領域RTRSの画像を用いて、イントラ予測モード候補に対するテンプレート予測画像を生成し、対象ブロックの好適なイントラ予測モードを選択する。
【0093】
図7は、本実施形態におけるTIMD予測部31047の構成を示している。TIMD予測部31047は、参照サンプル導出部4701、テンプレート導出部4702、イントラ予測部4703、イントラ予測モード候補導出部4711、テンプレート予測画像生成部4712、テンプレートコスト導出部4713と、イントラ予測モード選択部4714から構成される。なお、イントラ予測モード候補導出部4711、テンプレート予測画像生成部4712、テンプレートコスト導出部4713を総称してテンプレートイントラ予測モード導出装置4710と呼んでもよい。
【0094】
timd_flagが1の場合、TIMD予測部31047は、テンプレート領域RTの画像から生成されたテンプレート画像tempSamplesを精度よく予測するイントラ予測モードを用いてテンプレート予測画像tpredSamplesを導出する。具体的には、TIMD予測部31047は以下の手順を実行する。
【0095】
(STEP1)所定の予測モード(イントラ予測候補)とテンプレート参照領域RTRSを用いて予測画像tpredSamplesを導出する。所定の予測モードは、MPMに含まれるAngular予測モード、planar予測モード、DC予測モード、デコード側イントラモード導出(DIMD、Decoder-side Intra Mode Derivation)により導出されたイントラ予測モードを含んでもよい。
【0096】
(STEP1-1)所定の予測モードに含まれる少なくとも一部のイントラ予測モードに対し、テンプレート予測画像tpredSamplesを導出する。
【0097】
(STEP1-2)導出された各tpredSamplesと、tempSamplesの差異の大きさを表すコスト値を導出する。
【0098】
(STEP2)導出したtpredSamplesのうちコスト値が小さい、すなわち予測精度が高いと判定されたtpredSamplesに対応するイントラ予測モードをTIMDの予測モードとして選択する。
【0099】
(STEP3) (STEP2)で選択されたイントラ予測モードを用いて予測画像predSamplesを生成する。
【0100】
以下では図7に示したTIMD予測部31047の各部における処理(STEP1)~(STEP4)について、より詳細に説明する。
【0101】
(STEP1)テンプレート領域の画像を予測
イントラ予測モード候補導出部4711は、まず、対象ブロックの隣接ブロックのイントラ予測モードから、イントラ予測モード候補のリストtimdModeList[]を導出する。例えばtimdModeListとしてMPMリストcandModeList[]を用いてもよい。
【0102】
timdModeList[i] = candModeList[i] (i=0..numCand-1)
numCandはcandModeListの要素数である。
【0103】
テンプレート導出部4702は、対象ブロックのテンプレート画像tempSamplesを導出する。図6に示すように、対象ブロックに隣接するテンプレート領域RTから導出してもよい。ここでは、テンプレート領域RTは1画素幅のL字型の既復号画素recSamplesである。
【0104】
tempSamples[i][j] = recSamples[x0+i][y0+j] (i=0..cbWidth-1, j=-tH..-1、および、i=-tW..-1, j=0..cbHeight-1)
tempSamples導出に用いるrecSamples上の領域をテンプレート領域RTと呼び、座標(i, j)の集合で表現する。tW、tHはテンプレート画像の幅と高さである。つまりRT={{i=0..cbWidth-1, j=-tH..-1}, {i=-tW..-1, j=0..cbHeight-1}}。図6では(tW,tH)=(1,1)である。またtempSamplesを用いずに、テンプレート領域に対応する復号画像の配列recSamplesをテンプレート画像として用いてもよい。この場合、tempSamplesの位置する領域をテンプレート領域と呼ぶ。対象ブロック、テンプレート領域RTとテンプレート参照領域の関係を図8にも示す。
【0105】
参照サンプル導出部4701は、テンプレート参照領域RTRSから、参照サンプルrefUnitを導出する。なお、参照サンプル導出部4701の動作を参照サンプルフィルタ部3103が行う構成であってもよい。
【0106】
refUnit[x][y] = recSamples[x0+x][y0+y]
ここで、x=-tW-1, y=-1-tH..refH-1、および、x=-tW..refW-1, y=-1-tHの範囲をとる。tW、tHはテンプレート領域の幅、および、高さであり、図6ではtW=1、tH=1である。refW=cbWidth*2、refH=cbHeight*2であるが、これに限らず、refW=cbWidth、refH=cbHeight、あるいはrefW=cbWidth*4、refH=cbHeight*4であってもよい。
【0107】
参照サンプル導出部4701は、参照サンプルrefUnit[x][y]にフィルタをかけて参照サンプルp[x][y]を導出してもよい。
【0108】
テンプレート予測画像生成部4712は、イントラ予測モードIntraPredModeの予測画像(テンプレート予測画像tpredSamples)をテンプレート参照領域RTRSから生成する。テンプレート予測画像生成部4712の予測画像導出の動作は予測部3104で行ってもよい。例えば、Planar予測部31041、DC予測部31042、Angular予測部31043は、テンプレート予測画像の導出と対象ブロックの予測画像の導出の両方を行ってもよい。
【0109】
<ステップサーチ構成の例>
TIMD予測部31047は、所定のイントラ予測モード候補を複数のグループに分割し、各グループから選択したイントラ予測モード候補毎にテンプレート予測画像を生成してコストを評価し、最もコストが低いイントラ予測モード候補が属するグループでは、前記選択したイントラ予測モード候補以外の候補についてもコストの導出と選択を行う。例えば、TIMD予測部31047は、イントラ予測モードをnumGr個(numGr>1)のグループに分けて、各グループの代表モードだけをテスト(テンプレート予測画像を導出しコストを計算し比較)する。代表モードが最小コストをもつベストなグループに含まれるイントラ予測モードに対しては、さらに詳細にイントラ予測モードをテストする構成であってもよい。この構成によれば、粗い粒度のイントラ予測モードの探索numGr回と細かい粒度のイントラ予測モードの探索M-1回と分けて行う。例えば候補数numCand(=numGr*M)回実施していた予測画像導出及びコスト導出をグループ数とグループ内候補数の和(numGr+M-1回)に削減することができ、大幅に複雑度が削減できる。ここでnumGrはグループ数、Mはグループに含まれるイントラモード数である。
【0110】
図9(a)はイントラ予測モードをグループに分割する例である。ここではTIMD予測で利用する候補リストであるtimdModeListに含まれるイントラ予測モードを、Gr[0]~Gr[8]の9個のグループに分類する。イントラ予測モードのグループ化はある閾値gTH[]とイントラ予測モードの大小関係を用いて判定してもよい。イントラ予測モードが0~66の場合、グループを分ける閾値は、例えば{gTH[0],gTH[1],gTH[2],gTH[3],gTH[4],gTH[5],gTH[6],gTH[7]}={1,10,18,26,34,42,50,58}であってもよい。この場合、Gr[1]~Gr[8]には各々、2-10、11-18、19-26、27-34、35-42、43-50、51-58、59-66のイントラAngular予測モードが含まれる。なお、予測方向の傾きが近いことから、Angular予測モードの最後のグループ(Gr[8])をAngular予測モードの最初のグループ(Gr[1])と統合するようにしてもよい。イントラ予測モード数をnumMode、グループ数をnumGrとすると、図9(a)はnumMode=67、numGr=9の例である。
【0111】
イントラ予測モード選択部4714は、予め定められたグループ毎に含まれるイントラ予測モード候補を格納するリストGrList[m][n](m=0..numGr-1、n=0..numCand-1)と各グループに含まれるイントラ予測モード候補の個数を格納するリストnumGrList[m](m=0..numGr-1)を用いて、TIMDのイントラ予測モードを導出してもよい。
【0112】
イントラ予測モード選択部4714は、全てのAngular予測モードを対象にグループに分割してもよい。対象ブロックに隣接するブロックのイントラ予測モードなどから導出されるイントラ予測モードtimdModeListに含まれる候補のみを対象にしてグループに分割するようにしてもよい。以下では後者の例を示す。
【0113】
イントラ予測モード選択部4714は、timdModeListに含まれる候補(timdModeList[k]、k=0..numCand-1)を大きさに応じて分類し、各グループ内の候補を示すリスト(グループリスト)GrList[m][n]とグループの数numGrList[m](m=0..numGr-1)を導出してもよい。例えば以下のように処理してもよい。gTH[m](m=0..numGr-2)はグループを分ける閾値である。
【0114】
まずイントラ予測モード選択部4714は、numGrListとnGrListを初期化する。
【0115】
for (m=0; m<numGr; m++)
numGrList[m] = 0
for (m=0; m<numGr; m++)
for (n=0; n<numCand; n++)
GrList[m][n] = 0
続いて、イントラ予測モード選択部4714は、各k(k=0..numCand-1)に対し、timdModeList[k]が図9(a)のGr[0]~Gr[8]のいずれのグループに属するかを判定してもよい。
【0116】
for (k=0; k<numCand; k++) {
m=0
do {
if (timdModeList[k]<=gTH[m]) {
GrList[m][numGrList[m]] = timdModeList[k]
numGrList[m]++
break
}
else m++
} while (m<numGr-1)
if (m==numGr-1) { // last Group
GrList[m][numGrList[m]] = timdModeList[k]
numGrList[m]++
}
}
上記の構成によれば、1回目の探索で最小の代表モードとそれが属するベストなグループを特定する。グループ内のイントラ予測モードは方向が連続しているため、2回目の探索において、ベストなグループ内の全てのイントラ予測モードを探索することで、漏れのない探索が行える効果を奏する。また、例えばtimdModeListに含まれるイントラ予測モードなど、限定された候補の集合を対象としてグループに分割し、代表モードを特定しても、2回目の探索においては特定されたグループの全てのイントラ予測モードを探索する。そのため、特定方向の候補を漏れなく探索できる効果を奏する。さらに、上記構成では、グループを重複がない排他な構成とすることにより、無駄のない探索が可能であり複雑度を低減できる。
【0117】
なお、閾値に等しいあるいは近いモードは、閾値の両側のグループどちらにも含めるようにしてもよい。このような一部のイントラ予測モードを重複させることにより、複雑度を低減しながら安定した探索を実現できる。重複する個数は1から2が適当である。
【0118】
イントラ予測モード選択部4714は、timdModeListのイントラ予測モード候補を1つ以上含むグループに対し、代表モードrepMode[m](m=0..numGr-1)を1つ設定する。例えば代表モードは各グループのイントラ予測モードの中でtimdModeList内の位置が最も上位のモードや、先頭のモードであってもよい。つまりGrList[m][0]に格納されたモードから代表モードを1つ設定する。
【0119】
for (m=0; m<numGr; m++)
if (numGrList[m]!=0)
repMode[m] = GrList[m][0]
else repMode[m] = NO_REP
NO_REPは代表モードがないことを表す定数であり、他のイントラ予測モード番号と重複しない値を用いる。
【0120】
各グループの代表モードは上記に限らない。例えば、各グループ内で最小のモード番号を持つイントラ予測モードであってもよい。
【0121】
repMode[m] = argmin(GrList[m][n]) (n=0..numCand-1)
あるいは、各グループの代表モードは各グループ内で最大のイントラ予測モードであってもよい。
【0122】
repMode[m] = argmax(GrList[m][n]) (n=0..numCand-1)
あるいは、各グループの代表モードは各グループ内で中央値を持つイントラ予測モードであってもよい。
【0123】
あるいは、グループに水平や垂直、45度、135度など所定の方向が含まれていれば、その方向を代表モードとして設定し、含まれていなければ他の方法、例えば前記のいずれかの方法で代表モードを設定してもよい。
【0124】
(STEP1-1)テンプレート領域の画像を予測
具体的には、repMode[m]に含まれる各イントラ予測モード各々(tIntraPredMode=repMode[m])に対して、参照サンプルrefUnit[x][y]あるいはフィルタリング後の参照サンプルp[x][y]から、1次元の参照画素配列ref[]を生成する。そして、tIntraPredModeとref[]をイントラ予測部4703に伝送する。イントラ予測部4703はtIntraPredModeに対応するテンプレート予測画像tpredSamples[][]を生成し、テンプレート予測画像生成部4712に出力する。
【0125】
テンプレート予測画像生成部4712は、たとえば、以下の(式TIMD-ANGULAR-REF)のようにref[]を生成する。以下はp[][]からtpredSamples[][]を生成するが、p[][]の代わりにrefUnit[][]を用いてもよい
【0126】
(式TIMD-ANGULAR-REF)
tIntraPredMode>=DIRの場合、以下で導出する。
【0127】
ref[x] = p[x][-1-tH] (x=0..cbWidth+refIdx+1)
それ以外の場合(tIntraPredMode<DIR)、以下で導出する。
【0128】
ref[x] = p[-1-tW][x] (x=0..cbHeight+refIdx+1)
DIRは所定の定数、例えばDIR=34, 66など。ここでrefIdxは対象ブロックからの距離である。テンプレート領域の画像を予測に用いるテンプレート参照領域はrefIdx>0(例えば、refIdx=2, 4など)を用いてもよい。refIdxはブロックサイズによって変更してもよい。
【0129】
refIdx = (cbWidth >= 8) && (cbHeight >= 8) ? 4 : 2
テンプレート予測画像生成部4712(イントラ予測部4703)は、たとえば、以下の(式TIMD-ANGULAR-PRED)のようにtIntraPredModeに対応するテンプレート予測画像tpredSamples[][]を生成する。
tIntraPredMode>=DIRの場合、 (式TIMD-ANGULAR-PRED)
iIdx = (((y + 1 + refIdx) * intraPredAngle) >> 5) + refIdx
iFact = ((y + 1 + refIdx) * intraPredAngle) & 31
tpredSamples[x][y] = Clip1((Σ(filt[i] * ref[x+iIdx+i]) + 32) >> 6)
それ以外の場合(tIntraPredMode<DIR)、
iIdx = (((x + 1 + refIdx) * intraPredAngle) >> 5) + refIdx
iFact = ((x + 1 + refIdx) * intraPredAngle) & 31
tpredSamples[x][y] = Clip1((Σ(filt[i] * ref[y+iIdx+i]) + 32) >> 6)
x=0..cbWidth-1,y=0..tH-1およびx=0..tW-1、y=0..cbHeight-1。
【0130】
ここでΣはi=0..MTAP-1までの総和、filtはテンプレート予測画像用の補間フィルタ係数である。テンプレート予測画像の導出に用いる補間フィルタのタップ数MTAPは例えば4。intraPredAngleは各イントラ予測モードの角度パラメータである。filtは、以下のようにiFastから導出してもよい。filtG[phase][j]はテンプレート予測画像を生成するための補間フィルタの係数である。
【0131】
filt[j] = filtG[iFact][j]
テンプレート導出部4702は、上記の方法で対象ブロックのテンプレート画像tempSamplesを導出する。
【0132】
テンプレート予測画像生成部4712は、上記の方法で代表モードrepMode[m]の予測画像(テンプレート予測画像tpredSamplesR)をテンプレート参照領域RTRSから生成する。
【0133】
for (m=0; m<numGr; m++)
if (numGrList[m]!=0) {
tIntraPredMode = repMode[m
【0134】
(式TIMD-ANGULAR-PRED)の方法でtpredSamplesR[x][y]を生成
}
(STEP1-2)コスト導出
テンプレートコスト導出部4713は、代表モード候補repMode[m]のテンプレート予測画像tpredSamplesRとテンプレート画像tempSamplesの差分から、イントラ予測モード候補のコストtempGrCost[m]を導出する。コストはSAD(Sum of Absolute Differnce)であってもよい。
【0135】
for (m=0; m<numGr; m++)
if (numGrList[m]!=0)
tempGrCost[m] = Σabs(tpredSamplesR[i][j] - tempSamples[i][j])
else
tempGrCost[m] = MAX_COST
(i, j)は、例えば(i=0..cbWidth-1, j=0..tH-1), (i=0..tW-1, j=0..cbHeight-1)。tW、tHはテンプレート画像の幅と高さである。
MAX_COSTはコスト値およびそのグループが無効であることを表す値であり、他のコスト値よりも小さくなることがない値とする。例えばdouble型の最大値などを用いるとよい。
コストはSADではなく、SATD(Sum of Absolute Transformed Differnce)であってもよいし、複数のコストの重み付き和であってもよい。
【0136】
(STEP2)グループおよびモードの選択と重み導出
イントラ予測モード選択部4714は、(STEP1-2)で導出したtempGrCost[m](m=0..numGr-1)の中から、コストが最小となるmを導出し、mmとする。
【0137】
mm = argmin(tempGrCost[m]) (m=0..numGr-1)
グループmmの全てのイントラ予測モードに対し、(STEP1-1)、(STEP1-2)を実行する。コストが導出済みのイントラ予測モードであれば、(STEP1-1)と(STEP1-2)は省略することができる。グループmmの中で最小値costMode1と2番目に小さな値costMode2、およびそれに対応するイントラ予測モード候補kMode1とkMode2を選択する。
【0138】
kMode1 = argmin(tempCost[k]) (k=0..numGrList[mm]-1)
costMode1 = tempCost[kMode1]
kMode2 = argmin(tempCost[k]) (k=0..kMode1-1, kMode+1..numGrList[mm] -1)
costMode2 = tempCost[kMode2]
例えば、最小値、2番目に小さいコストと対応するイントラ予測モードは以下の疑似コードでもよい
for (k = 0; k < numGrList[mm]; k++) {
if (tempCost[k] < costMode1) {
costMode2 = costMode1
kMode2 = kMode1
costMode1 = tempCost[k]
kMode1 = k
}
}
ここで、kMode1とkMode2の表す予測方向をさらに高精度な方向の表現で調整してもよい。たとえば、kMode1=15の場合、モード14とモード15の中間方向(モードkMode1aとする)およびモード15とモード16の中間方向(モードkMode1bとする)についてもAngular予測画像を導出し、コストを導出する。導出された2つのコストをcostMode1と比較し、最小のコストを与えるモードを新たにkMode1とし、costMode1は最小値に更新する。kMode2についても同様の調整を行ってもよい。
【0139】
導出された2つのモードkMode1とkMode2に対し、コストcostMode1とcodeMode2に応じて予測画像生成に用いる重みweight1とweight2を導出する。例えば次のように導出する。
【0140】
costMode1とcostMode2を閾値ThCostと比較し、costMode2がThCost*costMode1より小さい(第1の条件)場合、予測画像生成に用いる重みweight1とweight2を導出する。
【0141】
if (costMode2 < ThCost*costMode1) {
weight1 = (1<<8) * costMode2 / (costMode1+costMode2)
weight2 = (1<<8) - weight1
}
あるいは、グループmmをさらに再帰的に小さなグループに分割してもよい。例えば、図9(b)のように、イントラ予測モードを3つのグループにGr[0]、Gr[1]、Gr[2]に分け、閾値を{gTH[0],gTH[1]}={1,34}とする。1回目の探索で最小の代表モードrepMode[m]とそれが属するベストなグループをm=1、Gr[1]に特定したとする。Gr[1]は2-34の33個のイントラ予測モードを含み、2回目の探索数が多くなりすぎる。このような場合、図9(c)のように、Gr[1]をさらに分割したGr[3]とGr[4]に対して、最小の代表モードrepMode[m](m=3,4)とそれが属するベストなグループを特定する。このベストなグループに対し、上記2回目の探索を実施する。Gr[3]あるいはGr[4]のイントラ予測モード数が多い場合、さらに分割をくりかえしてもよい。このように探索対象のモード数を段階的に限定することにより、少ない処理量で精度の高い予測モードを逐次的に導出することができる。
【0142】
なお、Angular予測でないGr[0]については、常に全てのモードについてコストを導出してkMode1とkMode2を更新するようにしてもよい。さらに、Gr[0]以外でも、例えば水平方向や垂直方向など、所定のモードについては常にコストを導出するようにしてもよい。
【0143】
(STEP3)TIMD予測画像導出
イントラ予測部4703はIntraPredModeに対応するイントラ予測画像predSamples[][]を導出する。そして、対象ブロックのイントラ予測画像として出力する。なお、これらの処理は予測部3104で導出してもよい。イントラ予測モード候補intraPredModeに対応する予測画像predSamples[x][y](x=0..cbWidth-1, y=0..cbHeight-1)は下記で生成される。
【0144】
if (intraPredMode >= DIR) (式INTRA-ANGULAR-PRED)
iIdx = (((y + 1) * intraPredAngle) >> 5)
iFact = ((y + 1) * intraPredAngle) & 31
predSamples[x][y] = Clip1((Σ(fT[i] * ref[x+iIdx+i]) + 32) >> 6)
else /* intraPredMode < DIR*/
iIdx = (((x + 1) * intraPredAngle) >> 5)
iFact = ((x + 1) * intraPredAngle) & 31
predSamples[x][y] = Clip1((Σ(fT[i] * ref[y+iIdx+i]) + 32) >> 6)
ここでref[]はテンプレート予測画像生成部で説明した通りである。
【0145】
ここでΣはi=0..NTAP-1までの和、fTはイントラ予測画像用の補間フィルタ係数である。イントラ予測画像の導出に用いる補間フィルタのタップ数NTAPは例えば6で、NTAP>=MTAPに設定する。MTAPはテンプレート予測画像tpredSamplesを導出するための補間フィルタfiltのタップ数である。
【0146】
fTは、以下のようにiFastから導出してもよい。fG[phase][j]はイントラ予測画像を生成するための補間フィルタの係数である。
fT[j] = fG[iFact][j]
(STEP2)の第1の条件が成立する場合、IntraPredMode=kMode1, kMode2に対応するイントラ予測画像predSamples1[][]、predSamples2[][]を(式INTRA-ANGULAR-PRED)を用いて生成する。そして、対象ブロックの予測画像predSamples[][]はpredSamples1[][]とpredSamples2[][]の重み付け和で生成される。
【0147】
predSamples[x][y] = (weight1*predSamples1[x][y] + weight2*predSamples2[x][y]) >> 8
そうではなく、(STEP2)の第1の条件が成立しない場合、predSamples[][]はkMode1に対応するイントラ予測画像predSamples1[][]を用いて生成される。predSamples1[][]は(式INTRA-ANGULAR-PRED)により生成される。
【0148】
predSamples[x][y] = predSamples1[x][y]
上述の構成によれば、テンプレート予測画像およびコスト計算を、特定のグループに属するイントラ予測モードに限定して実施するため、テンプレート予測画像導出の処理量を削減する効果を奏する。
【0149】
(実施例1の別の例1)
実施例1の別の例として、他のグループ分割方法を示す。この方法では、Angular予測モードを含む各グループの要素数がほぼ均等になるように分割し、選択するグループによって処理するモードの総数すなわち処理量に大きな差が生じないようにする。つまり、Angular予測モードを含むグループの要素数の違いが1個以下となるイントラ予測モードの候補を用いる。
【0150】
イントラ予測モード選択部4714は、さらに、方向性のないモード(PlanarまたはDC)と方向性のあるモードに分けて、方向性のあるモードの候補timdAngModeListを用いて、グループ分割を行ってもよい。なお、方向性のないモードはPlanar、PlanarHor、PlanarVerなど複数のモードを備えていてもよい。具体的には、各kに対し、timdModeList[k](k=0..numCand-1)がGr[0]~Gr[m](m=numGr-1)のいずれのグループに属するかを判定する。timdModeList[k]がPlanarまたはDCの場合はGr[0]である。これら以外、すなわちtimdModeListに含まれるAngular予測モードだけをモード番号順にソートしたリストをtimdAngModeList[k](k=0..numAngCand-1)とする。numAngCandはtimdAngModeListの要素数である。
【0151】
イントラ予測モード選択部4714は、各グループの要素数がそれぞれ概ねnumAngCand/(numGr-2)個となるように、timdAngModeListを(numGr-2)個のグループ(Gr[1]~Gr[numGr-1])に分ける。以下に処理の例を示す。ここでnumAngCand=23, numGr=5とする。
【0152】
for (m=0; m<numGr; m++)
numGrList[m] = 0
m=0
th=0
GrList[0][numGrList[0]++] = 0 (=DC)
GrList[0][numGrList[0]++] = 1 (=Planar)
for (k=0; k<numAngCand; k++) {
if (k >= th) {
m++
th=numAngCand*m/(numGr-1)
}
GrList[m][numGrList[m]] = timdAngModeList[k]
numGrList[m]++
}
以降の処理は実施例1と同様にできる。グループmmを再度分割する際にも、ここで説明した分割と同様の方法を用いてよい。
【0153】
上述の構成によれば、timdModeListから分割されたどのグループGr[1]~Gr[numGr-1]も、他のグループとの要素数の差は高々1個である。つまりどのグループがグループmmとして選択されても要素数がほぼ等しいため、処理量が安定的に削減できる効果を奏する。
【0154】
なお、上記ではイントラ予測モードは0~numCand-1(例えばnumCand=67)の例を記載したが、イントラ予測モードはこれに限らない。例えば、numCand=35であってもよい。あるいはwide angleのようにイントラ予測モードが-14~80の値をとってもよい。wide angleの場合は、-14~-1、あるいは67~80のイントラ予測モードに対して新たなグループを1つ割り当ててもよい。そして、代表モードやベストなグループを同定してもよい。
【0155】
本実施例の動画像復号装置は、対象ブロックに隣接するテンプレート領域の画像を用いて、テンプレート画像を生成するテンプレート導出部と、前記対象ブロック近傍のテンプレート参照領域の画像を用いて、参照サンプルを生成する参照サンプル導出部と、前記参照サンプルを用いて、所定のイントラ予測モード候補に対するテンプレート予測画像を生成するテンプレート予測画像生成部と、前記テンプレート予測画像と前記テンプレート画像からコストを導出するテンプレートコスト導出部と、前記コストに基づいて前記対象ブロックのイントラ予測モードを選択するイントラ予測モード選択部を備える。
【0156】
上述の構成によれば、対象ブロックに対して複数のイントラ予測候補を用いて繰り返しテンプレート予測画像(イントラ予測画像)の導出を行うTIMD予測において、テンプレート画像の予測画像導出の処理量を削減する効果を奏する。
【0157】
加算部312は、予測画像生成部308から入力されたブロックの予測画像と逆量子化・逆変換部311から入力された予測誤差を画素毎に加算して、ブロックの復号画像を生成する。加算部312はブロックの復号画像を参照ピクチャメモリ306に記憶し、また、ループフィルタ305に出力する。
【0158】
(動画像符号化装置の構成)
次に、本実施形態に係る動画像符号化装置11の構成について説明する。図10は、本実施形態に係る動画像符号化装置11の構成を示すブロック図である。動画像符号化装置11は、予測画像生成部101、減算部102、変換・量子化部103、逆量子化・逆変換部105、加算部106、ループフィルタ107、予測パラメータメモリ(予測パラメータ記憶部、フレームメモリ)108、参照ピクチャメモリ(参照画像記憶部、フレームメモリ)109、符号化パラメータ決定部110、パラメータ符号化部111、予測パラメータ導出部120、エントロピー符号化部104を含んで構成される。
【0159】
予測画像生成部101は画像Tの各ピクチャを分割した領域であるCU毎に予測画像を生成する。予測画像生成部101はイントラ予測画像生成部122とインター予測画像生成部123を含む。予測画像生成部101は既に説明した予測画像生成部308と同じ動作であり、説明を省略する。
【0160】
減算部102は、予測画像生成部101から入力されたブロックの予測画像の画素値を、画像Tの画素値から減算して予測誤差を生成する。減算部102は予測誤差を変換・量子化部103に出力する。
【0161】
変換・量子化部103は、減算部102から入力された予測誤差に対し、周波数変換によって変換係数を算出し、量子化によって量子化変換係数を導出する。変換・量子化部103は、量子化変換係数をパラメータ符号化部111及び逆量子化・逆変換部105に出力する。
【0162】
逆量子化・逆変換部105は、動画像復号装置31における逆量子化・逆変換部311(図4)と同じであり、説明を省略する。算出した予測誤差は加算部106に出力される。
【0163】
パラメータ符号化部111は、ヘッダ符号化部1110、CT情報符号化部1111、CU符号化部1112(予測モード符号化部)を備えている。CU符号化部1112はさらにTU符号化部1114を備えている。以下、各モジュールの概略動作を説明する。
【0164】
ヘッダ符号化部1110はヘッダ情報、分割情報、予測情報、量子化変換係数等のパラメータの符号化処理を行う。
【0165】
CT情報符号化部1111は、QT、MT(BT、TT)分割情報等を符号化する。
【0166】
CU符号化部1112はCU情報、予測情報、分割情報等を符号化する。
【0167】
TU符号化部1114は、TUに予測誤差が含まれている場合に、QP更新情報と量子化予測誤差を符号化する。
【0168】
エントロピー符号化部104には、パラメータ符号化部111から量子化変換係数と符号化パラメータが入力される。エントロピー符号化部104は、これらをエントロピー符号化して符号化ストリームTeを生成し、出力する。
【0169】
予測パラメータ導出部120は、インター予測パラメータ符号化部112、イントラ予測パラメータ符号化部113を含む手段であり、符号化パラメータ決定部110から入力されたパラメータからイントラ予測パラメータ及びイントラ予測パラメータを導出する。導出されたイントラ予測パラメータ及びイントラ予測パラメータは、パラメータ符号化部111に出力される。
【0170】
(イントラ予測パラメータ符号化部113の構成)
イントラ予測パラメータ符号化部113は、符号化パラメータ決定部110から入力されたIntraPredMode等を符号化する。イントラ予測パラメータ符号化部113は、イントラ予測パラメータ導出部304がイントラ予測パラメータを導出する構成と、一部同一の構成を含む。
【0171】
加算部106は、予測画像生成部101から入力された予測ブロックの画素値と逆量子化・逆変換部105から入力された予測誤差を画素毎に加算して復号画像を生成する。加算部106は生成した復号画像を参照ピクチャメモリ109に記憶する。
【0172】
ループフィルタ107は加算部106が生成した復号画像に対し、デブロッキングフィルタ、SAO、ALFを施す。なお、ループフィルタ107は、必ずしも上記3種類のフィルタを含まなくてもよく、例えばデブロッキングフィルタのみの構成であってもよい。
【0173】
予測パラメータメモリ108は、符号化パラメータ決定部110が生成した予測パラメータを、対象ピクチャ及びCU毎に予め定めた位置に記憶する。
【0174】
参照ピクチャメモリ109は、ループフィルタ107が生成した復号画像を対象ピクチャ及びCU毎に予め定めた位置に記憶する。
【0175】
符号化パラメータ決定部110は、符号化パラメータの複数のセットのうち、1つのセットを選択する。符号化パラメータとは、上述したQT、BTあるいはTT分割情報、予測パラメータ、あるいはこれらに関連して生成される符号化の対象となるパラメータである。予測画像生成部101は、これらの符号化パラメータを用いて予測画像を生成する。
【0176】
符号化パラメータ決定部110は、複数のセットの各々について情報量の大きさと符号化誤差を示すRDコスト値を算出する。符号化パラメータ決定部110は、算出したコスト値が最小となる符号化パラメータのセットを選択する。これにより、エントロピー符号化部104は、選択した符号化パラメータのセットを符号化ストリームTeとして出力する。符号化パラメータ決定部110は決定した符号化パラメータを予測パラメータメモリ108に記憶する。
【0177】
本実施例の動画像復号装置は、対象ブロックに隣接するテンプレート領域の画像を用いて、テンプレート画像を生成するテンプレート導出部と、前記対象ブロック近傍のテンプレート参照領域の画像を用いて、参照サンプルを生成する参照サンプル導出部と、前記参照サンプルを用いて、所定のイントラ予測モード候補に対するテンプレート予測画像を生成するテンプレート予測画像生成部と、前記テンプレート予測画像と前記テンプレート画像からコストを導出するテンプレートコスト導出部と、前記コストに基づいて前記対象ブロックのイントラ予測モードを選択するイントラ予測モード選択部と、テンプレートベースイントラモード導出フラグを符号化するパラメータ符号化部とを備え、前記参照サンプル導出部は、前記テンプレートベースイントラモード導出フラグを参照して、前記参照サンプルを導出する。
【0178】
なお、上述した実施形態における動画像符号化装置11、動画像復号装置31の一部、例えば、エントロピー復号部301、パラメータ復号部302、ループフィルタ305、予測画像生成部308、逆量子化・逆変換部311、加算部312、予測画像生成部101、減算部102、変換・量子化部103、エントロピー符号化部104、逆量子化・逆変換部105、ループフィルタ107、符号化パラメータ決定部110、パラメータ符号化部111をコンピュータで実現するようにしてもよい。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、動画像符号化装置11、動画像復号装置31のいずれかに内蔵されたコンピュータシステムであって、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0179】
また、上述した実施形態における動画像符号化装置11、動画像復号装置31の一部、または全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。動画像符号化装置11、動画像復号装置31の各機能ブロックは個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【0180】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
【産業上の利用可能性】
【0181】
本発明の実施形態は、画像データが符号化された符号化データを復号する動画像復号装置、および、画像データが符号化された符号化データを生成する動画像符号化装置に好適に適用することができる。また、動画像符号化装置によって生成され、動画像復号装置によって参照される符号化データのデータ構造に好適に適用することができる。
【符号の説明】
【0182】
31 画像復号装置
301 エントロピー復号部
302 パラメータ復号部
308 予測画像生成部
310 イントラ予測画像生成部
31047 TIMD予測部
4701 参照サンプル導出部
4702 テンプレート導出部
4703 イントラ予測部
4711 イントラ予測モード候補導出部、
4712 テンプレート予測画像生成部
4713 テンプレートコスト導出部
4714 イントラ予測モード選択部
311 逆量子化・逆変換部
312 加算部
11 画像符号化装置
101 予測画像生成部
102 減算部
103 変換・量子化部
104 エントロピー符号化部
105 逆量子化・逆変換部
107 ループフィルタ
110 符号化パラメータ決定部
111 パラメータ符号化部
1110 ヘッダ符号化部
1111 CT情報符号化部
1112 CU符号化部(予測モード符号化部)
1114 TU符号化部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10