(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024167601
(43)【公開日】2024-12-04
(54)【発明の名称】画像処理装置及びプログラム
(51)【国際特許分類】
H04N 19/593 20140101AFI20241127BHJP
H04N 19/46 20140101ALI20241127BHJP
【FI】
H04N19/593
H04N19/46
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023083794
(22)【出願日】2023-05-22
(71)【出願人】
【識別番号】000004352
【氏名又は名称】日本放送協会
(74)【代理人】
【識別番号】110001106
【氏名又は名称】弁理士法人キュリーズ
(72)【発明者】
【氏名】岩村 俊輔
(72)【発明者】
【氏名】近藤 雄一
(72)【発明者】
【氏名】根本 慎平
(72)【発明者】
【氏名】市ヶ谷 敦郎
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MA23
5C159MC11
5C159ME01
5C159PP04
5C159RC11
5C159UA02
5C159UA05
(57)【要約】
【課題】演算量の増大を抑制しつつ、曲線的なイントラ予測を実現する画像処理装置を提供する。
【解決手段】画像処理装置は、符号化ブロックに対応する予測画像を参照画素からイントラ予測によって導出するイントラ予測部を有する。前記イントラ予測部は、直線的な予測である方向性予測に属するイントラ予測モードを前記符号化ブロックに適用することに応じて、前記符号化ブロック内の各画素位置について前記イントラ予測モードの予測方向に応じた参照画素位置を特定する参照画素位置特定部と、前記予測方向をカーブさせる曲線予測を前記符号化ブロックに適用することに応じて、前記符号化ブロック内の各画素位置について前記参照画素位置をシフトするよう修正する参照画素位置修正部と、前記符号化ブロック内の各画素位置の予測画素を、前記修正された参照画素位置に基づいて導出する予測画素導出部と、を備える。
【選択図】
図3
【特許請求の範囲】
【請求項1】
符号化ブロックに対応する予測画像を参照画素からイントラ予測によって導出するイントラ予測部を有する画像処理装置であって、
前記イントラ予測部は、
直線的な予測である方向性予測に属するイントラ予測モードを前記符号化ブロックに適用することに応じて、前記符号化ブロック内の各画素位置について前記イントラ予測モードの予測方向に応じた参照画素位置を特定する参照画素位置特定部と、
前記予測方向をカーブさせる曲線予測を前記符号化ブロックに適用することに応じて、前記符号化ブロック内の各画素位置について前記参照画素位置をシフトするよう修正する参照画素位置修正部と、
前記符号化ブロック内の各画素位置の予測画素を、前記修正された参照画素位置に基づいて導出する予測画素導出部と、を備える
ことを特徴とする画像処理装置。
【請求項2】
前記参照画素位置修正部は、前記参照画素位置を水平方向及び垂直方向のいずれの方向にシフトさせるかを前記予測方向に基づいて決定する
ことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記参照画素位置修正部は、
前記予測方向が前記符号化ブロックの上側方向であることに応じて、前記参照画素位置を水平方向にシフトする処理と、
前記予測方向が前記符号化ブロックの左側方向であることに応じて、前記参照画素位置を垂直方向にシフトする処理と、を実行する
ことを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記参照画素位置修正部は、
前記参照画素位置のシフト量を示すオフセット値を正の値とするか又は負の値とするかを決定する処理と、
前記符号化ブロック内の各画素位置について、前記参照画素位置に正又は負の前記オフセット値を付与することで前記参照画素位置をシフトする処理と、を実行する
ことを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
【請求項5】
前記参照画素位置修正部は、
前記符号化ブロック内の画素位置と前記オフセット値との対応関係を定める対応情報を用いて、前記符号化ブロック内の各画素位置について前記オフセット値を導出する処理をさらに実行する
ことを特徴とする請求項4に記載の画像処理装置。
【請求項6】
前記画像処理装置が、ビットストリームを生成する符号化装置であって、
前記符号化ブロックに適用する前記イントラ予測モードを示す情報と、前記符号化ブロックに前記曲線予測を適用するか否かを示す情報と、を含む前記ビットストリームを出力する出力部をさらに備える
ことを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
【請求項7】
前記出力部は、前記符号化ブロックに前記曲線予測を適用することに応じて、前記参照画素位置のシフト量を示すオフセット値を正の値とするか又は負の値とするかを示す情報を前記ビットストリームに含める
ことを特徴とする請求項6に記載の画像処理装置。
【請求項8】
前記画像処理装置が、ビットストリームから復号画像を導出する復号装置であって、
前記符号化ブロックに適用する前記イントラ予測モードを示す情報と、前記符号化ブロックに前記曲線予測が適用されているか否かを示す情報と、を前記ビットストリームから取得する取得部をさらに備える
ことを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
【請求項9】
前記取得部は、前記符号化ブロックが前記曲線予測を適用されていることに応じて、前記参照画素位置のシフト量を示すオフセット値を正の値とするか又は負の値とするかを示す情報を前記ビットストリームから取得する
ことを特徴とする請求項8に記載の画像処理装置。
【請求項10】
コンピュータを請求項1乃至3のいずれか1項に記載の画像処理装置として機能させる
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置及びプログラムに関する。
【背景技術】
【0002】
HEVC(High Efficiency Video Codec)やVVC(Versatile Video Coding)等の映像符号化方式では、符号化装置は、原画像をブロック単位に分割した符号化ブロック(CU:Coding Unit)に対する予測画像である予測ブロックを生成し、原画像の符号化ブロックと予測ブロックとの差分を変換、量子化、及びエントロピー符号化して伝送する。
【0003】
予測画像の生成方法としては、フレーム間の相関を利用するインター予測と、フレーム内の相関を利用するイントラ予測とが用意されている。イントラ予測の手法として、Planar予測、DC予測のほか、直線的な予測である方向性予測が、HEVCでは33方向、VVCでは65方向から選択可能となっている。
【0004】
さらに、VVCでは、インター予測画像及びイントラ予測画像の合成であるCIIP(Combined Inter-Intra Prediction)モードや、イントラ予測画像に対する周囲の参照画素を用いた補正であるPDPC(Position Dependent Prediction Combination)等の様々な予測画像生成手法が採用されている。
【0005】
一方、非特許文献1には、曲線的なイントラ予測を行う手法として、周囲の復号画像を参照画素としたイントラ予測を行う際に、円弧状に予測画像を生成する手法が提案されている。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】中馬ほか「円弧に沿った両方向イントラ予測の検討」、PCSJ/IMPS2014 P2-5
【発明の概要】
【発明が解決しようとする課題】
【0007】
VVCやHEVC等の従来の符号化方式では、イントラ予測画像の生成手法として曲線的な予測を行う手法が採用されていない。そのため、曲線的なエッジを含む領域を高精度に予測することができず、予測精度が低下してしまう問題がある。この問題を解決するためにはブロックを細かく分割し、各局的な領域を直線とみなして予測する必要があるが、CUを細かく分割すると、分割情報の伝送に必要なフラグの情報量が増大し、符号化性能が低下する問題がある。
【0008】
非特許文献1に記載の技術は、曲線的なエッジに対してもエッジ形状に即した予測が可能となる一方で、従来の直線予測とは全く異なる予測処理が必要となり、演算量が増大する問題がある。
【0009】
そこで、本発明は、演算量の増大を抑制しつつ、曲線的なイントラ予測を実現する画像処理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
第1の態様に係る画像処理装置は、符号化ブロックに対応する予測画像を参照画素からイントラ予測によって導出するイントラ予測部を有する。前記イントラ予測部は、直線的な予測である方向性予測に属するイントラ予測モードを前記符号化ブロックに適用することに応じて、前記符号化ブロック内の各画素位置について前記イントラ予測モードの予測方向に応じた参照画素位置を特定する参照画素位置特定部と、前記予測方向をカーブさせる曲線予測を前記符号化ブロックに適用することに応じて、前記符号化ブロック内の各画素位置について前記参照画素位置をシフトするよう修正する参照画素位置修正部と、前記符号化ブロック内の各画素位置の予測画素を、前記修正された参照画素位置に基づいて導出する予測画素導出部と、を備える。
【0011】
第2の態様に係るプログラムは、コンピュータを第1の態様に係る画像処理装置として機能させる。
【発明の効果】
【0012】
本発明によれば、演算量の増大を抑制しつつ、曲線的なイントラ予測を実現する画像処理装置及びプログラムを提供できる。
【図面の簡単な説明】
【0013】
【
図1】実施形態に係る符号化装置の構成を示す図である。
【
図2】実施形態に係るイントラ予測モードを説明するための図である。
【
図3】実施形態に係る曲線予測に関する符号化装置のイントラ予測部の構成を示す図である。
【
図4】実施形態に係る復号装置の構成を示す図である。
【
図5】実施形態に係る曲線予測に関する復号装置のイントラ予測部の構成を示す図である。
【
図6】実施形態に係る曲線予測による予測画像の具体例を示す図である。
【
図7】実施形態に係る曲線予測で用いるオフセット値を導出するためのテーブルの一例を示す図である。
【
図8】実施形態に係るbIsModeVerに応じたオフセット値の導出の具体例を示す図である。
【
図9】実施形態に係る曲線予測に関わるSequence parameter set RBSP syntax(SPS)の具体例を示す図である。
【
図10】実施形態に係る曲線予測に関わるCoding unit syntaxの第1具体例(Option1)を示す図である。
【
図11】実施形態に係る曲線予測に関わるCoding unit syntaxの第2具体例(Option2)を示す図である。
【
図12】実施形態に係るCurved Predictionに関わる処理フロー例を示す図である。
【発明を実施するための形態】
【0014】
図面を参照して、実施形態に係る画像処理装置である符号化装置及び復号装置について説明する。符号化装置及び復号装置は、MPEGに代表される映像(すなわち、動画像)の符号化及び復号をそれぞれ行う。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。
【0015】
(符号化装置の構成)
図1は、本実施形態に係る符号化装置1の構成を示す図である。符号化装置1は、入力された画像を符号化してビットストリームを生成し、ビットストリームを出力する装置である。符号化装置1は、ブロック分割部100と、減算部110と、変換・量子化部120と、エントロピー符号化部130と、逆量子化・逆変換部140と、合成部150と、メモリ160と、予測部170とを有する。
【0016】
ブロック分割部100は、動画像を構成するフレーム(或いはピクチャ)単位の入力画像である原画像を複数の画像ブロックに分割し、分割により得た画像ブロックを減算部110に出力する。画像ブロックのサイズは、例えば32×32画素、16×16画素、8×8画素、又は4×4画素等である。画像ブロックの形状は正方形に限らず長方形(非正方形)であってもよい。画像ブロックは、符号化装置1が符号化を行う単位であり、且つ復号装置が復号を行う単位である。このような画像ブロックは符号化ブロック(CU)とも称される。
【0017】
入力画像は輝度信号(Y)及び色差信号(Cb、Cr)により構成されており、入力画像内の各画素は輝度成分(Y)及び色差成分(Cb、Cr)により構成される。符号化装置1は、例えば、4:4:4、4:2:2、及び4:2:0の3つの色差フォーマット(Chroma format)に対応している。ブロック分割部100は、輝度信号に対してブロック分割を行うことで輝度ブロックを出力し、色差信号に対してブロック分割を行うことで色差ブロックを出力する。ブロック分割の形状は輝度信号と色差信号とで同じであってもよいし、輝度信号と色差信号とで分割形状を独立に制御可能であってもよい。
【0018】
減算部110は、ブロック分割部100が出力する符号化ブロックと、符号化ブロックを予測部170が予測して得た予測ブロックとの差分(誤差)を表す予測残差を算出する。具体的には、減算部110は、ブロックの各画素値から予測ブロックの各画素値を減算することにより予測残差を算出し、算出した予測残差を変換・量子化部120に出力する。
【0019】
変換・量子化部120は、ブロック単位で変換処理及び量子化処理を行う。変換・量子化部120は、変換部121と、量子化部122とを有する。
【0020】
変換部121は、減算部110が出力する予測残差に対して変換処理を行って変換係数を算出し、算出した変換係数を量子化部122に出力する。変換とは、例えば、離散コサイン変換(DCT:Discrete Cosine Transform)や離散サイン変換(DST:Discrete Sine Transform)、カルーネンレーブ変換(KLT:Karhunen Loeve Transform)等をいう。変換処理には、変換処理を行わない変換スキップを含む。変換スキップは、水平のみ変換処理を適用する変換や垂直のみ変換処理を適用する変換も含む。また、変換部121は、変換処理により得られた変換係数に対してさらに変換処理を適用する二次変換処理を行ってもよい。二次変換処理は、変換係数の一部の領域のみに適用してもよい。
【0021】
量子化部122は、変換部121が出力する変換係数を量子化パラメータ及び量子化行列を用いて量子化し、量子化した変換係数である量子化変換係数をエントロピー符号化部130及び逆量子化・逆変換部140に出力する。なお、量子化パラメータは、ブロック内の各変換係数に対して共通して適用されるパラメータであって、量子化の粗さを定めるパラメータである。量子化行列は、各変換係数を量子化する際の量子化値を要素として有する行列である。
【0022】
エントロピー符号化部130は、量子化部122が出力する量子化変換係数に対してエントロピー符号化を行い、データ圧縮を行ってビットストリームを生成し、ビットストリームを符号化装置1の外部に出力する。エントロピー符号化には、ハフマン符号やCABAC(Context-based Adaptive Binary Arithmetic Coding)等を用いることができる。なお、エントロピー符号化部130は、予測部170から予測に関する情報(フラグやインデックス)が入力され、入力された情報の符号化・ビットストリーム出力も行う。
【0023】
逆量子化・逆変換部140は、ブロック単位で逆量子化処理及び逆変換処理を行う。逆量子化・逆変換部140は、逆量子化部141と、逆変換部142とを有する。
【0024】
逆量子化部141は、量子化部122が行う量子化処理に対応する逆量子化処理を行う。具体的には、逆量子化部141は、量子化部122が出力する量子化変換係数を、量子化パラメータ及び量子化行列を用いて逆量子化することにより変換係数を再構成し、再構成した変換係数を逆変換部142に出力する。
【0025】
逆変換部142は、変換部121が行う変換処理に対応する逆変換処理を行う。例えば、変換部121が離散コサイン変換を行った場合には、逆変換部142は逆離散コサイン変換を行う。逆変換部142は、逆量子化部141が出力する変換係数に対して逆変換処理を行って予測残差を再構成し、再構成した予測残差である再構成予測残差を合成部150に出力する。
【0026】
合成部150は、逆変換部142が出力する再構成予測残差を、予測部170が出力する予測ブロックと画素単位で加算することで合成する。合成部150は、再構成予測残差の各画素値と予測ブロックの各画素値を加算してブロックを復号(再構成)し、再構成ブロックをメモリ160に出力する。以下において、再構成ブロックを復号済みのブロックとも称する。
【0027】
メモリ160は、合成部150が出力する再構成ブロックを記憶し、再構成ブロックをフレーム単位で復号済み画像として蓄積する。メモリ160は、記憶している再構成ブロック若しくは復号済み画像を予測部170に出力する。なお、合成部150とメモリ160との間にループフィルタが設けられてもよい。
【0028】
予測部170は、ブロック単位で予測を行う。予測部170は、インター予測部171と、イントラ予測部172と、切替部173とを有する。
【0029】
インター予測部171は、メモリ160に記憶された復号済み画像を参照画像として用いて、ブロックマッチング等の手法により動きベクトルを算出し、符号化ブロックを予測してインター予測ブロックを生成し、生成したインター予測ブロックを切替部173に出力する。ここで、インター予測部171は、複数の参照画像を用いるインター予測(典型的には、双予測)や、1つの参照画像を用いるインター予測(片方向予測)の中から最適なインター予測方法を選択し、選択したインター予測方法を用いてインター予測を行う。インター予測部171は、インター予測に関する情報(動きベクトル等)をエントロピー符号化部130に出力する。
【0030】
イントラ予測部172は、メモリ160に記憶された復号済み画像のうち、ブロックの周辺にある復号済み画素を参照してイントラ予測ブロックを生成し、生成したイントラ予測ブロックを切替部173に出力する。一般的に、イントラ予測部172は、複数のイントラ予測モードの中から、イントラ予測の予測符号化ブロックに適用するイントラ予測モードを選択し、選択したイントラ予測モードを用いてイントラ予測の符号化ブロックを予測する。イントラ予測部172は、選択したイントラ予測モードに関する情報をエントロピー符号化部130に出力する。
【0031】
切替部173は、インター予測部171が出力するインター予測ブロックとイントラ予測部172が出力するイントラ予測ブロックとを切り替えて、いずれかの予測ブロックを減算部110及び合成部150に出力する。
【0032】
図2は、本実施形態に係るイントラ予測モードを説明するための図である。イントラ予測部172は、符号化ブロックに対するイントラ予測を行う。本実施形態では、輝度ブロックのイントラ予測モードの候補は、Planar予測、DC予測、及び65通りの方向性予測であって、計67通りのイントラ予測モードがある。
【0033】
予測モードのモード「0」はPlanar予測であり、予測モードのモード「1」はDC予測であり、予測モードのモード「2」乃至「66」は方向性予測である。方向性予測において、矢印の方向は予測方向(参照方向)を示し、矢印の起点は予測対象の画素の位置を示し、矢印の終点はこの予測対象画素の予測に用いる参照画素の位置(「参照画素位置」とも称する)を示す。方向性予測は計65モード用意されており、選択できる予測方向はブロックの形状(縦横比)により決定されている。なお、本実施形態では、方向性予測が65方向であるものとするが、方向性予測が65方向よりも多くてもよい。
【0034】
ブロックの右上頂点及び左下頂点を通る対角線に平行な予測方向として、左下方向を参照する予測モードであるモード「2」と、右上方向を参照する予測モードであるモード「66」とがあり、モード「2」からモード「66」まで時計回りに所定角度ごとにモード番号が割り振られている。モード「34」は、左上方向を参照する予測モードである。具体的には、水平方向を0°とした場合、モード「2」の予測方向が-45°、モード「18」の予測方向が0°、モード「34」の予測方向が45°、モード「50」の予測方向が90°、モード「66」の予測方向が135°である。なお、モード「18」は水平方向とも称され、モード「50」は垂直予測とも称される。
【0035】
ここで、モード「34」未満の各方向性予測、すなわち、モード「2」乃至「33」は、符号化ブロックの左側を参照する方向性予測であり、その予測方向が符号化ブロックの左側方向である。一方、モード「34」以上の各方向性予測、すなわち、モード「34」乃至「66」は、符号化ブロックの上側を参照する方向性予測であり、その予測方向が符号化ブロックの上側方向である。
【0036】
このように、方向性予測では、予測が直線的に行われる。しかしながら、一般の自然画像においては、オブジェクトの境界が曲線的であることが多い。そのため、直線的な予測では、オブジェクト境界(エッジ)の予測を高精度に行うことができず、符号化効率が低下する問題がある。
【0037】
本実施形態では、各方向性予測について、ベースとなる予測方向は従来と同様に直線とした状態で、ベースとなる予測方向をカーブさせることで曲線予測を実現する。このような曲線予測をCurved Predictionとも称する。具体的には、従来の直線予測(方向性予測)の参照する参照画素位置を画素ごとにシフトするよう修正することにより、曲線的なエッジを予測可能とする。
【0038】
図3は、本実施形態に係る曲線予測(Curved Prediction)に関するイントラ予測部172の構成を示す図である。イントラ予測部172は、符号化ブロック(CU)に対応する予測画像である予測ブロックを参照画素からイントラ予測によって導出する。
【0039】
イントラ予測部172は、参照画素位置特定部172aと、参照画素位置修正部172bと、予測画素導出部172cとを有する。
【0040】
参照画素位置特定部172aは、直線的な予測である方向性予測に属するイントラ予測モードを符号化ブロックに適用する場合、当該符号化ブロック内の各画素位置についてイントラ予測モードの予測方向に応じた参照画素位置を特定する。このような参照画素位置は、直線的な予測方向に存在する参照画素の位置である。具体的には、参照画素位置特定部172aは、イントラ予測モード(予測方向)に応じた参照画素の1/32画素精度の参照位置を参照画素位置として特定する。このような参照画素位置特定部172aの動作は、従来の方向性予測でも行われている動作である。
【0041】
参照画素位置修正部172bは、当該予測方向をカーブさせる曲線予測(Curved Prediction)を当該符号化ブロックに適用する場合、当該符号化ブロック内の各画素位置について、参照画素位置特定部172aにより特定された参照画素位置をシフトするよう修正する。参照画素位置修正部172bは、参照画素位置特定部172aにより特定された参照画素位置に正又は負のオフセット値を付与することで当該参照画素位置をシフトする。
【0042】
予測画素導出部172cは、曲線予測(Curved Prediction)を当該符号化ブロックに適用することに応じて、当該符号化ブロック内の各画素位置の予測画素を、参照画素位置修正部172bにより修正された参照画素位置に基づいて導出する。例えば、予測画素導出部172cは、従来の方向性予測の場合と同様に、参照画素位置に応じた参照画素に対してフィルタ処理を行った結果を予測画素として導出する。
【0043】
このように、本実施形態に係るイントラ予測部172によれば、当該符号化ブロック内の各画素位置について参照画素位置をシフトするという簡易な処理で曲線予測が可能であり、演算量の増大を抑制しつつ曲線的なイントラ予測を実現できる。
【0044】
参照画素位置修正部172bは、参照画素位置を水平方向及び垂直方向のいずれの方向にシフトさせるかを、イントラ予測モードの予測方向に基づいて決定する。例えば、参照画素位置修正部172bは、当該予測方向が符号化ブロックの上側方向である場合、参照画素位置を水平方向にシフトする。一方、予測方向が符号化ブロックの左側方向である場合、参照画素位置を垂直方向にシフトする。これにより、イントラ予測モードに応じて適切な方向に参照画素位置をシフトさせることができる。また、参照画素位置をシフトさせる方向(水平方向又は垂直方向)がイントラ予測モードに応じて一意に特定されるため、当該方向を示すフラグ情報を復号側にシグナリングする必要がない。
【0045】
参照画素位置修正部172bは、参照画素位置のシフト量を示すオフセット値を正の値とするか又は負の値とするかを決定する。そして、参照画素位置修正部172bは、符号化ブロック内の各画素位置について、参照画素位置に正又は負のオフセット値を付与することで参照画素位置をシフトする。これにより、オフセット値を正の値とするか又は負の値とするかによって、予測方向をカーブさせる方向(すなわち、カーブ形状)を異ならせることができる。よって、オブジェクトの境界のエッジ形状に合わせて予測方向をカーブさせることが可能になり、予測精度を高めることができる。
【0046】
参照画素位置修正部172bは、符号化ブロック内の画素位置とオフセット値との対応関係を定める対応情報を用いて、当該符号化ブロック内の各画素位置についてオフセット値を導出する。例えば、参照画素位置修正部172bは、符号化ブロックの幅又は高さごとに用意されたテーブルを対応情報として保持し、テーブルを用いて当該符号化ブロック内の各画素位置についてオフセット値を導出する。これにより、当該符号化ブロック内の画素位置ごとに適切なオフセット値を導出できる。テーブルの具体例については後述する。但し、符号化ブロック内の画素位置とオフセット値との対応関係を定める対応情報は、テーブルに限定されるものではなく、符号化ブロック内の画素位置とオフセット値との対応関係を計算式により定めてもよい。ここで、sin,cos,ベジェ曲線等の曲線を用いてもよいし、それを整数化したものを用いてもよい。
【0047】
イントラ予測部172は、曲線予測(Curved Prediction)に関する情報をエントロピー符号化部130に出力する。エントロピー符号化部130は、曲線予測(Curved Prediction)に関する情報を含むビットストリームを出力する出力部として機能する。
【0048】
本実施形態では、エントロピー符号化部130は、符号化ブロックに適用するイントラ予測モードを示す情報(intraPredMode)と、符号化ブロックに曲線予測を適用するか否かを示す情報(curved_intra_prediction_flag)と、を含むビットストリームを出力する。curved_intra_prediction_flagは、新たに導入されるシンタックスである。curved_intra_prediction_flagにより、符号化ブロックに曲線予測(Curved Prediction)を適用するか否かを復号側に適切に通知できる。例えば、符号化ブロックに曲線予測(Curved Prediction)を適用しない場合にはcurved_intra_prediction_flagが「0」(False)にセットされ、符号化ブロックに曲線予測(Curved Prediction)を適用する場合にはcurved_intra_prediction_flagが「1」(True)にセットされる。
【0049】
また、エントロピー符号化部130は、符号化ブロックに曲線予測を適用する場合、オフセット値を正の値とするか又は負の値とするかを示す情報(curved_intra_prediction_idx)をビットストリームに含める。curved_intra_prediction_idxにより、オフセット値を正の値とするか又は負の値とするかを復号側に適切に通知できる。例えば、オフセット値を負の値とする場合にはcurved_intra_prediction_idxが「0」(False)にセットされ、オフセット値を正の値とする場合にはcurved_intra_prediction_idxが「1」(True)にセットされる。
【0050】
(復号装置の構成)
図4は、本実施形態に係る復号装置2の構成を示す図である。復号装置2は、入力されたビットストリームから復号画像を導出して出力する装置である。
図4に示すように、復号装置2は、エントロピー復号部200と、逆量子化・逆変換部210と、合成部220と、メモリ230と、予測部240とを有する。
【0051】
エントロピー復号部200は、符号化装置1により生成されたビットストリームを復号し、量子化された変換係数を逆量子化・逆変換部210に出力する。また、エントロピー復号部200は、予測(イントラ予測及びインター予測)に関する情報を取得し、取得した情報を予測部240に出力する。
【0052】
エントロピー復号部200は、符号化ブロックに適用するイントラ予測モードを示す情報(intraPredMode)と、当該符号化ブロックに曲線予測を適用するか否かを示す情報(curved_intra_prediction_flag)と、をビットストリームから取得する取得部として機能する。エントロピー復号部200は、当該符号化ブロックに曲線予測が適用される場合、参照画素位置のシフト量を示すオフセット値を正の値とするか又は負の値とするかを示す情報(curved_intra_prediction_idx)をビットストリームから取得する。エントロピー復号部200は、intraPredMode、curved_intra_prediction_flag、及びcurved_intra_prediction_idxをイントラ予測部242に出力する。
【0053】
逆量子化・逆変換部210は、ブロック単位で逆量子化処理及び逆変換処理を行う。逆量子化・逆変換部210は、逆量子化部211と、逆変換部212とを有する。
【0054】
逆量子化部211は、符号化装置1の量子化部122が行う量子化処理に対応する逆量子化処理を行う。逆量子化部211は、エントロピー復号部200が出力する量子化変換係数を、量子化パラメータ及び量子化行列を用いて逆量子化することにより、符号化ブロックの変換係数を再構成し、再構成した変換係数を逆変換部212に出力する。
【0055】
逆変換部212は、符号化装置1の変換部121が行う変換処理に対応する逆変換処理を行う。逆変換部212は、逆量子化部211が出力する変換係数に対して逆変換処理を行って予測残差を再構成し、再構成した予測残差である再構成予測残差を合成部220に出力する。逆変換処理には、逆変換処理を行わない変換スキップを含む。また、逆変換部212は、逆変換処理により得られた信号に対してさらに逆変換処理を適用する逆二次変換処理を行ってもよい。
【0056】
合成部220は、逆変換部212が出力する予測残差と、予測部240が出力する予測ブロックとを画素単位で加算することで合成し、元のブロックを復号(再構成)して再構成ブロックをメモリ230に出力する。
【0057】
メモリ230は、合成部220が出力する再構成ブロックを記憶し、再構成ブロックをフレーム単位で復号済み画像として蓄積する。メモリ230は、再構成ブロック若しくは復号済み画像を予測部240に出力する。また、メモリ230は、フレーム単位の復号済み画像を復号装置2の外部に出力する。なお、合成部220とメモリ230との間にループフィルタが設けられてもよい。
【0058】
予測部240は、ブロック単位で予測を行う。予測部240は、インター予測部241と、イントラ予測部242と、切替部243とを有する。
【0059】
インター予測部241は、メモリ230に記憶された復号済み画像を参照画像として用いて、符号化ブロックをインター予測により予測する。インター予測部241は、エントロピー復号部200が出力する動きベクトル情報等に従ってインター予測を行うことによりインター予測ブロックを生成し、生成したインター予測ブロックを切替部243に出力する。
【0060】
イントラ予測部242は、メモリ230に記憶された復号済み画像のうち、予測対象のブロック(符号化ブロック)の周辺にある復号済み画素を参照してイントラ予測ブロックを生成し、生成したイントラ予測ブロックを切替部243に出力する。
【0061】
切替部243は、インター予測部241が出力するインター予測ブロックとイントラ予測部242が出力するイントラ予測ブロックとを切り替えて、いずれかの予測ブロックを合成部220に出力する。
【0062】
図5は、本実施形態に係る曲線予測(Curved Prediction)に関するイントラ予測部242の構成を示す図である。イントラ予測部242は、符号化ブロック(CU)に対応する予測画像である予測ブロックを参照画素からイントラ予測によって導出する。
【0063】
イントラ予測部242は、参照画素位置特定部242aと、参照画素位置修正部242bと、予測画素導出部242cとを有する。
【0064】
参照画素位置特定部242aは、intraPredModeが示すイントラ予測モードを符号化ブロックに適用する場合、当該符号化ブロック内の各画素位置について当該イントラ予測モードの予測方向に応じた参照画素位置を特定する。具体的には、参照画素位置特定部242aは、イントラ予測モード(予測方向)に応じた参照画素の1/32画素精度の参照位置を参照画素位置として特定する。このような参照画素位置特定部242aの動作は、従来の方向性予測でも行われている動作である。
【0065】
参照画素位置修正部242bは、curved_intra_prediction_flagに基づいて曲線予測(Curved Prediction)を当該符号化ブロックに適用する場合、当該符号化ブロック内の各画素位置について、参照画素位置特定部242aにより特定された参照画素位置をシフトするよう修正する。参照画素位置修正部242bは、参照画素位置特定部242aにより特定された参照画素位置に、curved_intra_prediction_idxに基づいて正又は負のオフセット値を付与することで当該参照画素位置をシフトする。
【0066】
予測画素導出部242cは、curved_intra_prediction_flagに基づいて曲線予測(Curved Prediction)を当該符号化ブロックに適用することに応じて、当該符号化ブロック内の各画素位置の予測画素を、参照画素位置修正部242bにより修正された参照画素位置に基づいて導出する。例えば、予測画素導出部242cは、従来の方向性予測の場合と同様に、参照画素位置に応じた参照画素に対してフィルタ処理を行った結果を予測画素として導出する。
【0067】
このように、本実施形態に係るイントラ予測部242によれば、当該符号化ブロック内の各画素位置について参照画素位置をシフトするという簡易な処理で曲線予測が可能であり、演算量の増大を抑制しつつ曲線的なイントラ予測を実現できる。
【0068】
参照画素位置修正部242bは、参照画素位置を水平方向及び垂直方向のいずれの方向にシフトさせるかを、intraPredModeが示すイントラ予測モードの予測方向に基づいて決定する。例えば、参照画素位置修正部242bは、当該予測方向が符号化ブロックの上側方向である場合、参照画素位置を水平方向にシフトする。一方、予測方向が符号化ブロックの左側方向である場合、参照画素位置を垂直方向にシフトする。これにより、イントラ予測モードに応じて適切な方向に参照画素位置をシフトさせることができる。また、参照画素位置をシフトさせる方向(水平方向又は垂直方向)がイントラ予測モードに応じて一意に特定され、当該方向を示す情報が符号化側からシグナリングされることを必要としない。
【0069】
参照画素位置修正部242bは、curved_intra_prediction_idxに基づいて、参照画素位置のシフト量を示すオフセット値を正の値とするか又は負の値とするかを決定する。そして、参照画素位置修正部242bは、符号化ブロック内の各画素位置について、参照画素位置に正又は負のオフセット値を付与することで参照画素位置をシフトする。これにより、オフセット値を正の値とするか又は負の値とするかによって、予測方向をカーブさせる方向(すなわち、カーブ形状)を異ならせることができる。よって、オブジェクトの境界のエッジ形状に合わせて予測方向をカーブさせることが可能になり、予測精度を高めることができる。
【0070】
参照画素位置修正部242bは、符号化ブロック内の画素位置とオフセット値との対応関係を定める対応情報を用いて、当該符号化ブロック内の各画素位置についてオフセット値を導出する。例えば、参照画素位置修正部242bは、符号化ブロックの幅又は高さごとに用意されたテーブルを対応情報として保持し、テーブルを用いて当該符号化ブロック内の各画素位置についてオフセット値を導出する。これにより、当該符号化ブロック内の画素位置ごとに適切なオフセット値を導出できる。
【0071】
(Curved Predictionの具体例)
図6乃至
図8を用いて、復号装置2の動作に着目して本実施形態に係るCurved Predictionの具体例について説明する。
図6は、本実施形態に係るCurved Predictionによる予測画像の具体例を示す図である。
【0072】
本具体例では、intraPredModeが示すイントラ予測モード(モード番号)が「40」であるものとする。イントラ予測モード「40」は、符号化ブロック(CU)の上側を参照する方向性予測であり、その予測方向が符号化ブロック(CU)の上側方向である。そのため、参照画素位置修正部242bは、参照画素位置を水平方向にシフトすることを決定する。
【0073】
参照画素位置修正部242bは、曲線予測フラグであるcurved_intra_prediction_flag及び曲線予測インデックスであるcurved_intra_prediction_idxに基づいて、参照画素位置のシフト量を示すオフセット値cp_offsetを正の値とするか又は負の値とするかを決定する。具体的には、参照画素位置修正部242bは、オフセット値cp_offsetの正負を定めるcp_idxを
cp_idx = curved_intra_prediction_flag ? ((curved_intra_prediction_idx == 1) ? 1 : -1 ) : 0
により算出する。
【0074】
すなわち、参照画素位置修正部242bは、curved_intra_prediction_flagが「1」(True)である場合、curved_intra_prediction_idxが「1」(True)であるか又は「0」(False)であるかを確認する。参照画素位置修正部242bは、curved_intra_prediction_idxが「1」(True)である場合にはcp_idxを「1」とし、curved_intra_prediction_idxが「0」(False)である場合にはcp_idxを「-1」とする。なお、参照画素位置修正部242bは、curved_intra_prediction_flagが「0」(False)である場合、cp_idxを「0」とする。
【0075】
図6(a)は、cp_idx=1である場合のCurved Predictionの一例を示す。
図6(b)は、cp_idx=0である場合のCurved Predictionの一例を示す。
図6(c)は、cp_idx=-1である場合のCurved Predictionの一例を示す。
図6(a)及び
図6(c)の例では、Curved Predictionにより、曲線的な予測方向を用いたイントラ予測が行われている。画素位置ごとの参照画素位置のオフセット値cp_offsetが正の値であるか又は負の値であるかに応じて、予測方向のカーブ方向(カーブ形状)が逆になっている。一方、
図6(b)の例では、Curved Predictionが行われておらず、従来の方向性予測と同様に直線的な予測方向を用いたイントラ予測が行われている。
【0076】
図7は、本実施形態に係るCurved Predictionで用いるオフセット値cp_offsetを導出するためのテーブルcp_table[][]の一例を示す図である。テーブルcp_table[][]は、画素位置ごとのオフセット値cp_offsetの基準値(基準オフセット値)を格納するテーブルである。テーブルcp_table[][]は、符号化ブロックの幅(width)又は高さ(height)ごとに定義される。図示の例では、8画素分のテーブルcp_table[3]と、16画素分のテーブルcp_table[4]と、32画素分のテーブルcp_table[5]と、64画素分のテーブルcp_table[6]と、128画素分のテーブルcp_table[7][i]と、が用意されている。テーブルcp_table[7][i]は、cp_table[6]から導出される。
【0077】
いずれのテーブルにおいても、予測対象の画素位置が符号化ブロックの中心に近いほど基準オフセット値が大きくなるよう設定されている。すなわち、予測対象の画素位置が符号化ブロックの端部に近いほど基準オフセット値が小さくなるよう設定されている。
【0078】
テーブルcp_table[][]は、システムで予め設定した固定のテーブルであってもよい。テーブルcp_table[][]は、原画像の分析により可変とし、符号化装置1から復号装置2に伝送(シグナリング)してもよい。
【0079】
参照画素位置修正部242bは、符号化ブロック内の画素位置ごとに、イントラ予測モード(予測方向)に応じた参照画素の1/32画素精度の参照画素位置deltaPosを、テーブルcp_table[][]を用いて導出されるオフセット値cp_offsetによりシフトするよう修正し、修正後の参照画素位置deltaPosを用いて当該画素位置の予測画素を生成する。
【0080】
具体的には、第1に、参照画素位置修正部242bは、対象の符号化ブロックのサイズに応じて、sizeIdxを次のように導出する:
bIsModeVer = intraPredMode >= 34
sizeIdx = bIsModeVer ? Log2(height) : Log2(width)
【0081】
但し、intraPredModeは対象の符号化ブロックのイントラ予測モード(モード番号)であり、heightは当該符号化ブロックの高さであり、widthは当該符号化ブロックの幅である。
【0082】
すなわち、参照画素位置修正部242bは、イントラ予測モード(モード番号)が「34」以上である場合にはbIsModeVerを「1」(True)とし、イントラ予測モード(モード番号)が「34」未満である場合にはbIsModeVerを「0」(False)とする。そして、参照画素位置修正部242bは、bIsModeVerが「1」(True)である場合にはsizeIdxをLog2(height)により算出し、bIsModeVerが「0」(False)である場合にはsizeIdxをLog2(width)により算出する。
【0083】
このように、参照画素位置修正部242bは、イントラ予測モードの予測方向が符号化ブロックの上側方向である場合、当該符号化ブロックのサイズに応じたsizeIdxを当該符号化ブロックの高さ(height)から算出する。一方、イントラ予測モードの予測方向が符号化ブロックの左側方向である場合、当該符号化ブロックのサイズに応じたsizeIdxを当該符号化ブロックの幅(width)から算出する。
【0084】
図8は、本実施形態に係るbIsModeVerに応じたオフセット値cp_offsetの導出の具体例を示す図である。図示の例では、イントラ予測モードの予測方向が上側方向である一例を示している。
【0085】
第2に、参照画素位置修正部242bは、対象の符号化ブロックの各画素位置(x,y)におけるオフセット値cp_offsetを
dist = bIsModeVer ? y : x
cp_offset = (cp_table[sizeIdx][dist] * (bIsModeVer ? width:height) * cp_idx * scale) >> shift
により導出する。但し、scale及びshiftは、オフセット値cp_offsetの調整のための定数である。scale及び/又はshiftは、システムで予め設定した固定値であってもよい。scale及び/又はshiftは、原画像の分析により可変とし、符号化装置1から復号装置2に伝送(シグナリング)してもよい。
【0086】
具体的には、参照画素位置修正部242bは、bIsModeVerが「1」(True)である場合、すなわち、イントラ予測モードの予測方向が符号化ブロックの上側方向である場合、distを画素位置(x,y)における「y」(垂直方向の位置)とする。一方、bIsModeVerが「0」(False)である場合、すなわち、イントラ予測モードの予測方向が符号化ブロックの左側方向である場合、distを画素位置(x,y)における「x」(水平方向の位置)とする。
【0087】
そして、参照画素位置修正部242bは、テーブルcp_table[][]からsizeIdx及びdistに対応する基準オフセット値cp_table[sizeIdx][dist]を取得する。また、参照画素位置修正部242bは、(bIsModeVer?width:height)により、基準オフセット値cp_table[sizeIdx][dist]を水平方向又は垂直方向に拡張する。これにより、符号化ブロックの幅又は高さに応じた形状(曲率)の予測方向のカーブが実現される。具体的には、参照画素位置修正部242bは、bIsModeVerが「1」(True)である場合、すなわち、イントラ予測モードの予測方向が符号化ブロックの上側方向である場合、基準オフセット値cp_table[sizeIdx][dist]にwidthを乗算する(水平方向に拡張する)。一方、bIsModeVerが「0」(False)である場合、すなわち、イントラ予測モードの予測方向が符号化ブロックの左側方向である場合、基準オフセット値cp_table[sizeIdx][dist]にheightを乗算する(垂直方向に拡張する)。
【0088】
また、参照画素位置修正部242bは、基準オフセット値cp_table[sizeIdx][dist]に、オフセット値cp_offsetの正負を定めるcp_idxを乗算する。その結果、予測方向のカーブ方向(カーブ形状)が定められる。さらに、参照画素位置修正部242bは、scale及びshiftを用いてオフセット値cp_offsetを調整する。このようにして、オフセット値cp_offsetが水平方向又は垂直方向の画素位置ごとに導出される。
【0089】
第3に、参照画素位置修正部242bは、符号化ブロック内の各画素位置について、イントラ予測モード(予測方向)に応じた参照画素の1/32画素精度の参照画素位置deltaPosに、導出したオフセット値cp_offsetを加算することでシフトするよう修正する。
【0090】
第4に、予測画素導出部242cは、符号化ブロック内の各画素位置の予測画素を、参照画素位置修正部242bにより修正された参照画素位置deltaPosに基づいて導出する。例えば、予測画素導出部242cは、従来の方向性予測の場合と同様に、参照画素位置deltaPosに応じた参照画素に対してフィルタ処理を行った結果を予測画素として導出する。
【0091】
なお、cp_offsetによるdeltaPosの修正により、従来のイントラ予測が参照しなかった位置の参照画素を参照し得るが、復号済みでない場合や、参照できない画素である場合には、参照可能な近傍画素のコピーを行う。本実施形態に係るCurved Predictionは、色成分(Y、Cb、Cr)ごとに適用してもよい。輝度と色差のブロック分割が同一形状となるSingle Treeの場合には、輝度(Y)と色差(Cb、Cr)のイントラ予測モードが同一かどうかに応じて、輝度及び色差のそれぞれに対してCurved Predictionを適用するか否かを定めてもよい。輝度と色差で独立したブロック分割が可能なDual Treeの場合とSingle Treeの場合とで、輝度・色差のいずれに適用するかも自由に設定可能である。入力映像フォーマットが4:2:2のように異なる解像度の場合には、輝度と色差で解像度の比に応じたcp_offsetの導出を行ってもよい。
【0092】
(Curved Predictionに関わるシグナリングの具体例)
図9乃至
図11を用いて、本実施形態に係るCurved Predictionに関わるシグナリング(すなわち、ビットストリームに含められる制御情報)の具体例について説明する。
図9乃至
図11において、Curved Predictionに関わる特徴的な部分を破線で囲んで示している。
【0093】
図9は、本実施形態に係るCurved Predictionに関わるSequence parameter set RBSP syntax(SPS)の具体例を示す図である。
【0094】
SPSにおいて、シーケンス単位でのCurved Predictionの適用の可否を制御するためのsps_cip_enabled_flagが追加されている。例えば、sps_cip_enabled_flagが「1」(True)にセットされた場合には、当該シーケンスについてCurved Predictionの適用が可能(イネーブル)とされる。sps_cip_enabled_flagが「0」(False)にセットされた場合には、当該シーケンスについてCurved Predictionの適用が不可(ディスエーブル)とされる。
【0095】
また、図示の例では、sps_cip_enabled_flagが「1」(True)にセットされた場合には、二次変換処理(逆二次変換処理)の一種であるLFNST(Low-Frequency Non-Separable Transform)をシーケンス単位で適用可否を制御するためのsps_lfnst_disable_for_cip_flagが追加されている。例えば、sps_lfnst_disable_for_cip_flagが「1」(True)にセットされた場合には、当該シーケンスについてLFNSTの適用が不可(ディスエーブル)とされる。sps_cip_enabled_flagが「0」(False)にセットされた場合には、当該シーケンスについてLFNSTの適用が可能(イネーブル)とされる。
【0096】
なお、VVCで採用されている二次変換であるLFNSTは、イントラ予測モードごとに異なる残差信号のエネルギー分布の傾向に注目して変換係数に対して二次変換を適用することで、エネルギー集中度を高めることで符号化性能を向上させる技術である。本実施形態に係るCurved Predictionでは、従来のイントラ予測と異なる残差信号のエネルギー分布となる可能性があるため、LFNSTの適用により、かえって符号化性能が低下してしまう虞がある。そこで、シーケンス単位でCurved Predictionを適用したCUに対するLFNSTの適用を禁止するか否かを決定するフラグであるsps_lfnst_disable_for_cip_flagを新たに導入することで、LFNSTの制御を行うことが可能となる。ここでは、LFNSTの適用を禁止するか否かをシーケンス単位で制御する一例について説明したが、シーケンス単位に限らずフレーム単位での制御としてもよい。
【0097】
図10は、本実施形態に係るCurved Predictionに関わるCoding unit syntaxの第1具体例(Option1)を示す図である。Coding unit syntaxは、
図9で示したシーケンス単位のシンタックスとは異なり、符号化ブロック(CU)単位のシンタックスである。
【0098】
CUについて、ISP(Intra Sub-Partition)が選択されない場合で、且つ、sps_lfnst_disable_for_cip_flagが「1」(True)にセットされた場合には、curved_intra_prediction_flagがシグナリングされる。curved_intra_prediction_flagが「0」(False)である場合には、従来通りのイントラ予測が行われる。一方、curved_intra_prediction_flagが「1」(True)である場合には、追加でcurved_intra_prediction_idxがシグナリングされる。これら二つのsyntaxによりCurved Predictionのモードであるcp_idxが上述の方法で導出される。但し、curved_intra_prediction_flag及びcurved_intra_prediction_idxがシグナリングされない場合の初期値はいずれも「0」(False)とする。
【0099】
なお、ISPは、CUを水平又は垂直に複数の小領域に分割して符号化する技術である。ISPが適用されるCUについては、本実施形態に係るCurved Predictionが適切に機能しない可能性があるため、Curved Predictionを適用しないこととしている。或いは、ISPが適用されるCUについても、Curved Predictionを適用可能としてもよい。例えば、CUのサイズ又はISPによる小領域のサイズが所定のサイズ条件を満たす場合に限り、Curved Predictionを適用可能としてもよい。
【0100】
本具体例(Option1)では、Curved Predictionは、MPM(Most Probable Mode)の場合、且つPlanar予測でない場合にのみ適用可能としている。MPMは、隣接するブロックのイントラ予測モードに基づくモードであり、MPMを含んで構成されるMPMリストを用いるモードである。MPMリスト中の6つのイントラ予測モードには少ない符号量が割り当てられる。ここでは、MPMリスト中のイントラ予測モードが6つであるものとしているが、6つよりも多くてもよい。
【0101】
本具体例(Option1)では、符号化装置1は、MPMに含まれる6つのモードでのみCurved Predictionのトライアルを行う。具体的には、符号化装置1は、各MPMに対してcp_idx={-1,0,1}それぞれの場合のRDコストを算出し、最適なモードを導出するようにエンコーダ最適化を行う。このようなエンコーダ最適化は高速に実行可能であるメリットがある。
【0102】
また、LFNSTのインデックスであるlfnst_idxは、cp_idxが「0」(False)である場合又はsps_lfnst_disable_for_cip_flagが「0」(False)である場合に限ってシグナリングされる。
【0103】
図11は、本実施形態に係るCurved Predictionに関わるCoding unit syntaxの第2具体例(Option2)を示す図である。
【0104】
本具体例(Option2)では、Curved PredictionをPlanar以外のモードに対して適用可能とする。Option1及びOption2のどちらを用いるかは事前にシステムが定めてもよいし、シーケンス単位、フレーム単位、又はブロック単位等でシグナリングにより切り替えてもよい。
【0105】
本具体例(Option2)を採用した符号化装置1におけるエンコーダ最適化においては、全てのイントラ予測モードについて、cp_idx={-1,0,1}それぞれの場合のRDコストを算出し、最適なモードを導出する。Option2は低速であるものの、符号化性能はOption1より高くなる。
【0106】
(Curved Predictionに関わる処理フロー例)
図12は、本実施形態に係るCurved Predictionに関わる処理フロー例を示す図である。ここでは、復号装置2の動作を例に挙げて、符号化ブロック単位での処理について説明する。
【0107】
ステップS1において、参照画素位置特定部242aは、intraPredModeが示すイントラ予測モードを符号化ブロックに適用する場合、当該符号化ブロック内の各画素位置について当該イントラ予測モードの予測方向に応じた参照画素位置を特定する。具体的には、参照画素位置特定部242aは、イントラ予測モード(予測方向)に応じた参照画素の1/32画素精度の参照位置を参照画素位置として特定する。
【0108】
ステップS2において、参照画素位置修正部242bは、curved_intra_prediction_flag及びcurved_intra_prediction_idxに基づいて、曲線予測(Curved Prediction)を当該符号化ブロックに適用するか否かを確認する。曲線予測(Curved Prediction)を当該符号化ブロックに適用しない場合(ステップS2:NO)、ステップS3をスキップして処理がステップS4に進む。
【0109】
一方、曲線予測(Curved Prediction)を当該符号化ブロックに適用する場合(ステップS2:YES)、ステップS3において、参照画素位置修正部242bは、当該符号化ブロック内の各画素位置について、参照画素位置特定部242aにより特定された参照画素位置をシフトするよう修正する。参照画素位置修正部242bは、参照画素位置特定部242aにより特定された参照画素位置に、curved_intra_prediction_idxに基づいて正又は負のオフセット値cp_offsetを付与することで当該参照画素位置をシフトする。
【0110】
ステップS4において、予測画素導出部242cは、当該符号化ブロック内の各画素位置の予測画素を参照画素位置に基づいて導出する。例えば、予測画素導出部242cは、参照画素位置に応じた参照画素に対してフィルタ処理を行った結果を予測画素として導出する。
【0111】
(その他の実施形態)
画像処理装置(符号化装置1、復号装置2)が行う各処理をコンピュータに実行させるプログラムが提供されてもよい。プログラムは、コンピュータ読取り可能媒体に記録されていてもよい。コンピュータ読取り可能媒体を用いれば、コンピュータにプログラムをインストールすることが可能である。ここで、プログラムが記録されたコンピュータ読取り可能媒体は、非一過性の記録媒体であってもよい。非一過性の記録媒体は、特に限定されるものではないが、例えば、CD-ROMやDVD-ROM等の記録媒体であってもよい。画像処理装置(符号化装置1、復号装置2)が行う各処理を実行する回路を集積化し、画像処理装置を半導体集積回路(チップセット、SoC)として構成してもよい。
【0112】
本開示で使用されている「に基づいて(based on)」、「に応じて(depending on/in response to)」という記載は、別段に明記されていない限り、「のみに基づいて」、「のみに応じて」を意味しない。「に基づいて」という記載は、「のみに基づいて」及び「に少なくとも部分的に基づいて」の両方を意味する。同様に、「に応じて」という記載は、「のみに応じて」及び「に少なくとも部分的に応じて」の両方を意味する。「含む(include)」、「備える(comprise)」、及びそれらの変形の用語は、列挙する項目のみを含むことを意味せず、列挙する項目のみを含んでもよいし、列挙する項目に加えてさらなる項目を含んでもよいことを意味する。また、本開示において使用されている用語「又は(or)」は、排他的論理和ではないことが意図される。さらに、本開示で使用されている「第1」、「第2」等の呼称を使用した要素へのいかなる参照も、それらの要素の量又は順序を全般的に限定するものではない。これらの呼称は、2つ以上の要素間を区別する便利な方法として本明細書で使用され得る。したがって、第1及び第2の要素への参照は、2つの要素のみがそこで採用され得ること、又は何らかの形で第1の要素が第2の要素に先行しなければならないことを意味しない。本開示において、例えば、英語でのa,an,及びtheのように、翻訳により冠詞が追加された場合、これらの冠詞は、文脈から明らかにそうではないことが示されていなければ、複数のものを含むものとする。
【0113】
以上、図面を参照して実施形態について詳しく説明したが、具体的な構成は上述のものに限られることはなく、要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
【符号の説明】
【0114】
1 :符号化装置
2 :復号装置
100 :ブロック分割部
110 :減算部
120 :変換・量子化部
121 :変換部
122 :量子化部
130 :エントロピー符号化部
140 :逆量子化・逆変換部
141 :逆量子化部
142 :逆変換部
150 :合成部
160 :メモリ
170 :予測部
171 :インター予測部
172 :イントラ予測部
172a :参照画素位置特定部
172b :参照画素位置修正部
172c :予測画素導出部
173 :切替部
200 :エントロピー復号部
210 :逆量子化・逆変換部
211 :逆量子化部
212 :逆変換部
220 :合成部
230 :メモリ
240 :予測部
241 :インター予測部
242 :イントラ予測部
242a :参照画素位置特定部
242b :参照画素位置修正部
242c :予測画素導出部
243 :切替部