特許第5690898号(P5690898)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 日立マクセル株式会社の特許一覧

<>
  • 特許5690898-画像復号化方法 図000002
  • 特許5690898-画像復号化方法 図000003
  • 特許5690898-画像復号化方法 図000004
  • 特許5690898-画像復号化方法 図000005
  • 特許5690898-画像復号化方法 図000006
  • 特許5690898-画像復号化方法 図000007
  • 特許5690898-画像復号化方法 図000008
  • 特許5690898-画像復号化方法 図000009
  • 特許5690898-画像復号化方法 図000010
  • 特許5690898-画像復号化方法 図000011
  • 特許5690898-画像復号化方法 図000012
  • 特許5690898-画像復号化方法 図000013
  • 特許5690898-画像復号化方法 図000014
  • 特許5690898-画像復号化方法 図000015
  • 特許5690898-画像復号化方法 図000016
  • 特許5690898-画像復号化方法 図000017
  • 特許5690898-画像復号化方法 図000018
  • 特許5690898-画像復号化方法 図000019
  • 特許5690898-画像復号化方法 図000020
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5690898
(24)【登録日】2015年2月6日
(45)【発行日】2015年3月25日
(54)【発明の名称】画像復号化方法
(51)【国際特許分類】
   H04N 19/593 20140101AFI20150305BHJP
【FI】
   H04N19/593
【請求項の数】1
【全頁数】19
(21)【出願番号】特願2013-196392(P2013-196392)
(22)【出願日】2013年9月24日
(62)【分割の表示】特願2012-25715(P2012-25715)の分割
【原出願日】2007年10月10日
(65)【公開番号】特開2013-255290(P2013-255290A)
(43)【公開日】2013年12月19日
【審査請求日】2013年9月24日
(73)【特許権者】
【識別番号】000005810
【氏名又は名称】日立マクセル株式会社
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜特許業務法人
(72)【発明者】
【氏名】高橋 昌史
(72)【発明者】
【氏名】村上 智一
【審査官】 岩井 健二
(56)【参考文献】
【文献】 特開2006−352181(JP,A)
【文献】 特開2005−260464(JP,A)
【文献】 特開平10−136376(JP,A)
【文献】 特開平04−219074(JP,A)
【文献】 Taichiro Shiodera et al.,Bidirectional Intra Prediction,ITU - Telecommunications Standardization Sector STUDY GROUP 16 Question 6 Video Coding Experts Group,31st Meeting: Marrakech, MA,2007年 1月,VCEG-AE14,pp.1-6
【文献】 Peng Zhang et al.,Multiple modes intra-prediction in intra coding,2004 IEEE International Conference on Multimedia and Expo (ICME '04),IEEE,2004年 6月,Vol.1,pp.419-422
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 − 19/98
(57)【特許請求の範囲】
【請求項1】
画面内予測処理を用いる画像復号化方法であって、
逆可変長符号化処理を行う第1ステップと、
前記第1ステップにおいて処理したデータを逆量子化処理する第2ステップと、
前記第2ステップにおいて逆量子化したデータを逆周波数変換処理して予測差分を復号化する第3ステップと、
前記予測差分と復号化済の画素とを用いて復号化処理を行い、復号対象画素の集合である復号化画像を取得する第4ステップと、を有し、
前記第4ステップにおける処理には、
復号化対象ブロックの左側または上側に隣接する復号化済ブロック内の画素を用いて第1の参照画素を生成し、前記復号化対象ブロックの上側または左側であって前記第1の参照画素とは異なる側に隣接する復号化済の第2の参照画素と、前記第1の参照画素とを用いた演算処理を行う予測モードにより、予測画素を生成する第1の処理と、
前記第1の処理で用いた予測モードとは異なる予測モードにより、前記復号化対象ブロックに隣接する復号化済の画素を用いて予測画素を生成する第2の処理とがあり、
前記第1の処理または前記第2の処理によって生成された前記予測画素と前記予測差分とを用いて復号対象画素を取得することを特徴とする画像復号化方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は動画像を符号化する動画像符号化技術に関する。
【背景技術】
【0002】
大容量の動画像情報をデジタルデータ化して記録、伝達する手法として、MPEG (Moving Picture Experts Group)方式等の符号化方式が策定され、MPEG-1規格、MPEG-2規格、MPEG-4規格、H.264/AVC(Advanced Video Coding)規格等として国際標準の符号化方式となっている。
【0003】
これらの規格では、符号化処理が完了した画像情報を利用して符号化対象画像をブロック単位で予測し、原画像との予測差分を符号化することによって、動画像の持つ冗長性を除いて符号量を減らしている。特にH.264/AVCでは、符号化対象ブロックの周辺画素を利用する画面内予測符号化方式を採用することにより、劇的な圧縮率の向上を実現した。
【0004】
しかし、H.264/AVCにおける画面内予測の場合、予測方法が単純であり十分な予測精度を実現することができなかった。例えば、H.264/AVCによる画面内予測では、参照画素を1つだけ指定し、予測方向に沿った画素をすべて1つの参照画素の画素値のみを参照値として予測するという単方向による予測方式を採用しており、予測精度の向上の余地があった。そのため、画面内予測の精度を向上させて圧縮率を高めるための画面内符号化技術が求められるようになった。
【0005】
画面内予測の精度を向上させる技術として、例えば特許文献1には、画像全体を反転してから符号化することを可能にすることによって、画面内予測に利用可能な画素の種類を増やすことが開示されている。
【0006】
また、非特許文献1には、符号化順序をブロック単位で変更することによって、上下・左右のブロックを用いた予測を行うことが開示されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2006-352181
【非特許文献】
【0008】
【非特許文献1】塩寺太一郎, 谷沢昭行, 中條健,“ブロックベース外挿/内挿予測に基づくイントラ符号化”, PCSJ2006, November, 2006.
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかし、特許文献1では、画像を反転した後はH.264/AVCと同様に1つの参照画素の画素値のみを参照値として、単方向による単純な予測を行うため、それ以上に予測精度を向上することができない。
【0010】
また、非特許文献1では、上下・左右のブロックを用いた予測が可能になるブロックは一部に限られ、それ以外のブロックではH.264/AVCに比べて予測精度が低下する。
【0011】
これらの従来技術では、例えば、予測方向に沿って輝度値が大きく変化する場合に、予測値に対しての差分が大きくなり、符号量が増大し、圧縮率が低下するという課題があった。
【0012】
本発明は上記課題を鑑みてなされたものであり、本発明の目的は、より圧縮効率のよい画像符号化・復号化技術を提供することにある。
【課題を解決するための手段】
【0013】
上記目的を達成するために、本発明の一実施の態様は、例えば、特許請求の範囲に記載されるように構成すればよい。
【発明の効果】
【0014】
本発明によれば、より圧縮効率のよい画像符号化・復号化技術を提供することにある。
【図面の簡単な説明】
【0015】
図1】本発明の一実施例に係る画像符号化装置の説明図
図2】本発明の一実施例に係る画像復号化装置の説明図
図3】H.264/AVCで用いる画面内予測符号化処理の説明図
図4】本発明の一実施例に係る画面内予測符号化処理の説明図
図5】本発明の一実施例に係る画面内予測符号化処理の説明図
図6】H.264/AVCで用いる画面内予測復号化処理の説明図
図7】本発明の一実施例に係る画面内予測復号化処理の説明図
図8】本発明の一実施例に係る画面内予測復号化処理の説明図
図9】H.264/AVCで用いる画面内予測の説明図
図10】本発明の一実施例に係る画面内予測の説明図
図11】本発明の一実施例に係る画面内予測の説明図
図12】本発明の一実施例に係る画像符号化装置の流れ図
図13】本発明の一実施例に係る画像符号化装置の詳細な流れ図
図14】本発明の一実施例に係る画像復号化装置の流れ図
図15】本発明の一実施例に係る画像復号化装置の詳細な流れ図
図16】本発明の一実施例の説明図
図17】本発明の一実施例に係る画面内予測と異なる予測方法の説明図
図18】本発明の一実施例に係る符号化ストリームの構成例
図19】本発明の一実施例に係る符号化ストリームの構成例
【発明を実施するための形態】
【0016】
以下、本発明の実施例を、図面を参照して説明する。
【0017】
また、各図面において、同一の符号が付されている構成要素は同一の機能を有することとする。
【0018】
また、本明細書の各記載及び各図面における「画素の和」という表現は、画素の画素値を加算した結果をいう。
【0019】
まず、図3を用いて、H.264/AVCによる画面内予測符号化処理の動作を説明する。H.264/AVCでは、符号化対象画像に対してラスタースキャンの順序に従って符号化を実行する(301)。なお、ラスタースキャンの順序とは、一般的に画面の左上端から右端まで処理を行い、その後、一段下の左端から右端へ処理を行い、これを繰り返す順序をいう。
【0020】
ここで、符号化対象ブロックの各画素についての予測は、符号化対象ブロックの左、左上、上、右上に隣接する符号化済みのブロックの復号化画像の画素値を用いて予測を行う。
【0021】
特に、符号化済みのブロックのうち、図3に示す13個の画素のうち一の画素の画素値を参照値とし、当該一の画素を始点として予測方向の同一直線上に整列する画素はすべて当該一の画素の画素値を参照値として予測する(302)。
【0022】
例えば(303)に示すように、符号化対象ブロックの画素B、C、D、Eはすべて同一画素を参照して予測符号化が行われ、画素Bの直上の画素を復号化した値A’との差分(予測差分)b、c、d、eが計算される。さらに、H.264/AVCでは縦、横、斜めなど、8種類の予測方向候補の中から最適なものをブロック単位で選択することができ、予測差分と予測方向の値が符号化される。ただし、H.264/AVCでは、上記特定の方向に沿った予測の他に、参照画素の平均値によって符号化対象ブロックに含まれるすべての画素を予測する「DC予測」を利用することもできる(304)。
【0023】
次に、図6を用いて、H.264/AVCによる画面内予測復号化処理の動作を説明する。復号化処理も符号化処理と同様にラスタースキャンの順序に従って復号化を実行し(601)、復号化済みの参照画素と予測差分とを用いて、復号化画像の画素値を算出する。すなわち、予測方向に沿って予測差分を参照画素と足し合わせることによって復号化画像を取得する。
【0024】
例えば(602)では、復号化対象ブロックの予測差分b’、c’、d’、e’(それぞれ、上記図3のb、c、d、eが復号化され量子化誤差を含んだもの)に対して、それぞれ復号化済みの参照画素A’との和を計算することにより、復号化画素B’、C’、D’、E’(それぞれ、上記図3のB、C、D、Eに対する復号化画素)を取得する。
【0025】
以上のように、H.264/AVCによる画面内予測符号化処理では、参照画素を1つだけ指定し、予測方向に沿った画素をすべてその値で予測する単方向による単純な方法を採用している。
【0026】
H.264/AVCによる画面内予測符号化の概念図を図9に示す。ここでは、水平軸は対象ブロックにおける座標値を予測方向に沿って設定し、垂直軸はその座標における画素値(輝度値)を設定している。そのため、グラフ中の曲線は対象ブロックにおける輝度曲線を表している。すでに説明したように、H.264/AVCでは、画面内予測を行う際に参照できるのは対象ブロックの左側、および上側に位置するブロックに限られる。そのため、H.264/AVCでは、参照画素を1方向にコピーする方法を採用している。この場合、(901)のように、対象ブロックにおける輝度勾配が小さければ予測が当たりやすく予測差分は小さくなるが、(902)のように、輝度勾配が大きいと参照画素から離れるにつれて予測差分が大きくなり、符号量が増大してしまう。
【0027】
本実施例による画面内予測符号化の概念図を図10に示す。H.264/AVCによる上記の課題に対処するために、本実施例では(1001)のように対象ブロックの境界に位置する画素を新たな参照画素(参照画素2)とし、通常の参照画素(参照画素1)と組み合わせて予測する。すなわち、対象ブロックを通過する直線上に位置する2つの参照画素(参照画素1および参照画素2)を選択し、これらの参照画素が挟み込む画素の値をこれら2つの参照画素を用いた内挿予測による補間処理によって予測する。これにより、特に輝度勾配が大きなブロックに対して予測精度を高め、予測誤差を低減させることができる。
【0028】
しかし、H.264/AVCのようにラスタースキャンの順序に従って符号化を行った場合、多くの場合において対象ブロックの境界に位置する2つの参照画素のうち一方(参照画素1)の値しか得ることができない。本願に係る方式では、上記参照画素のうち他方(参照画素2)の値を、符号化済みの周辺ブロックに含まれる画素値から予測する。
【0029】
すなわち、本実施例では、参照画素1および参照画素2を符号化済みの画素から選択できる場合は符号化済みの画素から選択する。ここで、参照画素2が符号化済みの画素から選択できない場合は、符号化済みの画素から参照画素2を先に予測することにより、図10に示すような2つの参照画素を用いた内挿予測による補間処理によって予測する。
【0030】
これにより、2つの参照画素のうち一方の画素が符号化済みの画素ではない場合でも、輝度勾配が大きなブロックに対して予測精度を高め、予測誤差を低減させることができる。
【0031】
図4は本実施例による画面内予測符号化処理の動作例について概念的に示したものである。この場合も符号化対象画像に対してラスタースキャンの順序に従って符号化を行い、対象ブロックの左、左上、上、右上に隣接する符号化済みのブロックを参照して予測を行う。(401)は、垂直方向による画面内予測符号化手順を表している。ここでは、「ステップ1:対象ブロックの境界に位置する画素(例えば(1001)における参照画素2)の予測と予測差分の計算」、および「ステップ2:対象ブロックの両端に位置する参照画素を利用した双方向予測」の2ステップによる処理によって予測を実行する。
【0032】
ステップ1では、双方向予測に利用する2つの参照画素を選択する。ここで、参照画素を符号化済みの画素から選択できない場合は、符号化済みの周辺ブロックから予測する。例えば(402)では、対象ブロックの最も下の行に位置する画素の値E、F、G、Hを、対象ブロックの左に隣接するブロックの同じ行に位置する4つの復号化画素A’、B’、C’、D’の平均値Zによって予測している。また同時に、これら4つの画素とZの差分値を予測差分e、f、g、hとして符号化する。
【0033】
続いてステップ2では、対象ブロックに含まれる他の画素値を、ステップ1にて選択または予測した2つの参照画素を用いた内挿予測による補間処理を行うことによって予測する。例えば(403)では、対象ブロック中の同じ列に属する画素J、K、Lを参照画素I’と、ステップ1にて予測したZの値を用いた線形補間によって予測し、予測差分j、k、lを算出する手順について述べており、さらにこれらの予測差分が符号化されることになる。
【0034】
図7は本実施例による画面内予測復号化処理の動作例について概念的に示したものである。復号化には上記図4の手順の逆を行えばよく(701)、まず対象ブロックの左側に隣接するブロックを用いて参照画素Zを計算し(702)、対象ブロックの境界に位置する画素の予測差分e’、f’、g’、h’に加算することによって復号化画像E’、F’、G’、H’を取得する。続いて、対象ブロックの上側に隣接するブロックに含まれる参照画素I’と、上記の処理によって予測した値Zの内挿予測による線形補間によって対象ブロック中の各画素を予測し(703)、予測差分j’、k’、l’に加算することによって復号化画素J’、K’、L’を取得する。
【0035】
図4によって示した画面内予測では、対象画素の左側および上側に隣接するブロックを利用して参照画素の1つを予測するため、画面端に位置するブロックに対して本願に係る方式を適用することができない。そのため、画面端に位置するブロックに対しては、例えば図5の手順に従って画面内予測符号化を行うことによって、本実施例による双方向予測を適用することができる(501)。すなわち、ステップ1(対象ブロックの境界に位置する画素の予測と予測差分の計算)では、対象ブロックの上側に隣接するブロックの両端に位置する2つの画素の復号値A’、D’を用いた外挿予測を行うことによって、対象ブロックにおける同じ列の境界に位置する画素Hを予測するとともに、画素値Hと予測値Zとの差分hを予測差分として符号化する(502)。
【0036】
続いてステップ2(対象ブロックの両端に位置する参照画素を利用した双方向予測)では、対象ブロック中の同じ列に属する画素E、F、Gを、参照画素D’と上記ステップ1にて予測したZを用いた内挿予測による線形補間を行うことによって予測し、予測差分e、f、gを符号化する(503)。すなわち、画面端に位置するブロックに対する画面内予測処理は、それ以外の場合(図4)と比べてステップ1による手順が異なることになる。
【0037】
画面端に位置するブロックに対して上記の手順に従うことにより、対象ブロックの左側に隣接するブロックが利用できない場合でも本実施例による双方向予測を行うことが可能になる。この場合、図8の手順に従うことによって、復号化を行うことができる。すなわち、復号化には上記図5の手順の逆を行えばよく(801)、まず対象ブロックの上側に隣接するブロックを用いて参照画素Zを計算し(802)、対象ブロックの境界に位置する画素の予測差分h’に加算することによって復号化画像Hを取得する。続いて、対象ブロックの上側に隣接するブロックに含まれる参照画素D’と、上記の処理によって予測した値Zを用いた線形補間によって対象ブロック中の各画素を予測し(903)、予測差分e’、f’、g’に加算することによって復号化画素E’、F’、G’を取得する。
【0038】
本願に係る方式でも予測方法を複数の候補の中から選択可能であり、例えば図11に示すH.264/AVCで使われている9つの予測方法(1101)のうち、DC予測を除く8種類の予測方向の中から1つを利用することができる。例えば水平方向(予測方向1)に予測する場合(1102)、画面端以外のブロックに対して対象ブロックの最も右の列に属する画素を上側に隣接するブロックを用いて予測し、これを参照画素の1つとして双方向予測を行う。
【0039】
また、予測方向4のように斜めの方向に沿って予測を行う場合(1103)は、対象ブロックの最も右の列に属する画素と、最も下の行に属する画素をそれぞれ上側と左側に隣接するブロックから予測することによって、双方向予測を実現する。一方、画面端に位置するブロックに対しては、例えば水平方向(予測方向1)に予測する場合(1104)、左側に隣接するブロックを利用して対象ブロックの最も左の列に属する画素値を予測することによって双方向予測を実現する。また、予測方向7の場合(1105)は、上側に隣接するブロックを利用して対象ブロックの最も下の行に属する画素値を予測することによって双方向予測を実現する。この場合、(1104)と(1105)の手順に従うことによって、それぞれ上側、左側に隣接するブロックが利用できなくても本実施例による双方向予測を実現することができる。
【0040】
本実施例による予測符号化技術は従来技術と組み合わせて利用することにより、画像の性質に応じて高い圧縮率を実現することができると考えられる。例えば、本技術と従来技術をブロック単位で使い分けて予測符号化することにより、画像の性質に適した符号化が可能になる。従来技術としては、例えば図3(図6)に示すH.264/AVCによる画面内予測符号化方式(復号化方式)や、H.264/AVCでも利用されている画面間予測方式(符号化対象画像とは異なる画像を参照する予測方式)などを利用すると効果的である。
【0041】
図1は本実施例による動画像符号化装置の一実施例を示したものである。動画像符号化装置は、入力された原画像(101)を保持する入力画像メモリ(102)と、入力画像を小領域に分割するブロック分割部(103)と、ブロック単位で動きを検出する動き探索部(104)と、同じくブロック単位で例えばH.264/AVCによる画面内予測(図3に記載)など本実施例以外の手順にて画面内予測処理を行う旧画面内予測部(105)と、ブロック単位で本実施例による画面内予測(図4および図5に記載)を行う新画面内予測部(106)と、動き探索部(104)にて検出された動き量を基にブロック単位で画面間予測を行う画面間予測部(107)と、画像の性質に合った予測符号化手段(予測方法およびブロックサイズ)を決定するモード選択部(108)と、予測差分を生成するための減算部(109)と、予測差分に対して符号化を行う周波数変換部(110)および量子化部(111)と、記号の発生確率に応じた符号化を行うための可変長符号化部(112)と、一度符号化した予測差分を復号化するための逆量子化処理部(113)および逆周波数変換部(114)と、復号化された予測差分を用いて復号化画像を生成するための加算部(115)と、復号化画像を保持して後の予測に活用するための参照画像メモリ(116)を有する。
【0042】
入力画像メモリ(102)は原画像(101)の中から一枚の画像を符号化対象画像として保持し、これをブロック分割部(103)にて細かなブロックに分割し、動き探索部(104)、旧画面内予測部(105)および新画面内予測部(106)に渡す。動き探索部(104)では、参照画像メモリ(116)に格納されている復号化済み画像を用いて該当ブロックの動き量を計算し、動きベクトルとして画面間予測部(107)に渡す。旧画面内予測部(105)、新画面内予測部(106)および画面間予測部(107)では画面内予測処理および画面間予測処理をいくつかの大きさのブロック単位で実行し、モード選択部(108)にて最適な予測符号化手段を選ぶ。続いて減算部(109)では最適な予測符号化手段による予測差分を生成し、周波数変換部(110)に渡す。周波数変換部(110)および量子化処理部(111)では、送られてきた予測差分に対して指定された大きさのブロック単位でそれぞれDCT(Discrete Cosine Transformation:離散コサイン変換)などの周波数変換および量子化処理を行い、可変長符号化処理部(112)および逆量子化処理部(113)に渡す。さらに可変長符号化処理部(112)では、周波数変換係数によって表される予測差分情報を、例えば画面内予測符号化における予測方向や画面間予測符号化における動きベクトルなど、予測復号化に必要な情報とともに、記号の発生確率に基づいて可変長符号化を行って符号化ストリームを生成する。
【0043】
また、逆量子化処理部(113)および逆周波数変換部(114)では、量子化後の周波数変換係数に対して、それぞれ逆量子化およびIDCT(Inverse DCT:逆DCT)などの逆周波数変換を施し、予測差分を取得して加算部(115)に送る。続いて加算部(115)により復号化画像を生成して参照画像メモリ(116)に格納する。
【0044】
図2は本実施例による動画像復号化装置の一実施例を示したものである。動画像復号化装置は、例えば図1に示す動画像符号化装置によって生成された符号化ストリーム(201)に対して可変長符号化の逆の手順を踏む可変長復号化部(202)と、予測差分を復号化するための逆量子化処理部(203)および逆周波数変換部(204)と、例えばH.264/AVCによる画面内予測(図6に記載)など、本実施例以外の手順にて画面内予測処理を行う旧画面内予測部(205)と、本実施例による画面内予測(図7および図8に記載)を行う新画面内予測部(206)と、画面予測を行う画面間予測部(207)と、復号化画像を取得するための加算部(208)と、復号化画像を一時的に記憶しておくための参照画像メモリ(209)を有する。
【0045】
可変長復号化部(202)では、符号化ストリーム(201)を可変長復号化し、予測差分の周波
数変換係数成分と、予測方向や動きベクトルなどの予測処理に必要な情報を取得する。前
者の予測差分情報に対しては逆量子化処理部(203)に、後者の予測処理に必要な情報に対
しては、予測手段に応じて旧画面内予測部(205)、新画面内予測部(206)、または画面間予
測部(207)に送られる。続いて、逆量子化処理部(203)および逆周波数変換部(204)では、
予測差分情報に対してそれぞれ逆量子化と逆周波数変換を施して復号化を行う。一方で旧
画面内予測部(205)、新画面内予測部(206)または画面間予測部(207)では、可変長復号化
部(202)から送られてきた情報を基に参照画像メモリ(209)を参照して予測処理を実行し、
加算部(208)にて復号化画像を生成するとともに、復号化画像を参照画像メモリ(209)に格
納する。
【0046】
図12は、図1に示す動画像符号化装置の実施例における1フレームの符号化処理手順について示している。まず、符号化対象となるフレーム内に存在するすべてのブロックに対して(1201)、以下の処理を行う。すなわち、該当ブロックに対して一度すべての符号化モード(予測方法とブロックサイズの組み合わせ)に対して予測符号化処理を行って予測差分を計算し、その中から最も符号化効率の高いものを選択する。予測処理方法としては、本実施例による方法(以下、「新画面内予測符号化処理」(1205))の他に、例えばH.264/AVCに採用されている画面内予測方法(以下、「旧画面内予測符号化処理」(1206))や画面間予測符号化処理(1207)を実行し、その中から最適なものを選ぶことによって、画像の性質に応じて効率良く符号化できる。上記多数の符号化モードの中から最も符号化効率の高いものを選択する際には(1208)、例えば画質歪みと符号量の関係から最適な符号化モードを決定するRD-Optimization方式を利用することによって、効率良く符号化できる。RD-Optimization方式については、例えば、以下の参考文献1に記載の方式を用いればよい。
〔参考文献1〕G. Sullivan and T.Wiegand : “Rate-Distortion Optimization for Video Compression”, IEEE Signal Processing Magazine, vol.15, no.6, pp.74-90, 1998.
続いて、選ばれた符号化モードで生成された予測差分に対して周波数変換(1209)と量子化処理(1210)を施し、さらに可変長符号化を行うことによって符号化ストリームを生成する(1211)。一方、量子化済みの周波数変換係数に対しては逆量子化処理(1212)と逆周波数変換処理(1213)を施して予測差分を復号化し、復号化画像を生成して参照画像メモリに格納する(1214)。以上の処理をすべてのブロックに対して完了すれば、画像1フレーム分の符号化は終了する(1215)。
【0047】
図13は、上記新画面内予測符号化処理(1205)の詳細な処理手順について示している。ここでは、例えば(1101)のように、あらかじめ定義されたすべての予測方向に対し(1301)、予測方向に沿ったすべてのラインに対して以下の処理を行う(1302)。すなわち、対象ブロックが画面端に位置するなら(1303)、図5ステップ1の手順に従って境界画素の予測と予測差分の計算を行う(1304)。一方、対象ブロックが画面端に位置していないなら、図4ステップ1の手順に従って境界画素の予測と予測差分の計算を行う(1305)。続いて、周辺ブロックに含まれる参照画素と上記の手順にて予測した境界画素の値を用いて、図4および図5のステップ2の手順に従って双方向予測を行う(1305)。以上の処理をすべての予測方向およびすべてのラインに対して完了すれば、ブロック1つ分に対する予測符号化処理を終了する(1307)。
【0048】
図14は、図2に示す動画像復号化装置の実施例における1フレームの復号化処理手順について示している。まず、1フレーム内のすべてのブロックに対して、以下の処理を行う(1401)。すなわち、入力ストリームに対して可変長復号化処理を施し(1402)、逆量子化処理(1403)および逆周波数変換処理(1404)を施して予測差分を復号化する。続いて、対象ブロックがどの方法によって予測符号化されているかに応じて、新画面内予測復号化処理(1407)、従来型画面内予測復号化処理(1408)、もしくは画面間予測復号化処理(1409)を行い、復号化画像を取得して参照画像メモリに格納する。以上の処理をフレーム中のすべてのブロックに対して完了すれば、画像1フレーム分の復号化が終了する(1410)。
【0049】
図15は、上記新画面内予測復号化処理(1407)の詳細な処理手順について示している。ここでは、予測方向に沿ったすべてのラインに対して(1501)、以下の処理を行う。すなわち、対象ブロックが画面端に位置するなら(1502)、図8ステップ1の手順に従って境界画素の予測と予測差分の計算を行う(1503)。一方、対象ブロックが画面端に位置していないなら、図7ステップ1の手順に従って境界画素の予測と予測差分の計算を行う(1504)。続いて、周辺ブロックに含まれる参照画素と上記の手順にて予測した境界画素の値を用いて、図7および図8のステップ2の手順に従って双方向予測を行う(1505)。以上の処理をすべてのラインに対して完了すれば、ブロック1つ分に対する予測復号化処理を終了する(1506)。
【0050】
実施例では周波数変換の一例としてDCTを挙げているが、DST(Discrete Sine Transformation:離散サイン変換)、WT(Wavelet Transformation:ウェーブレット変換)、DFT(Discrete Fourier Transformation:離散フーリエ変換)、KLT(Karhunen-Loeve Transformation:カルーネン-レーブ変換)など、画素間相関除去に利用する直交変換ならどんなものでも構わないし、特に周波数変換を施さずに予測差分そのものに対して符号化を行っても構わない。さらに、可変長符号化も特に行わなくて良い。また、実施例では特に4×4画素サイズのブロック単位で輝度成分の予測を行う場合について記載しているが、例えば8×8画素サイズや16×16画素サイズなど、どのようなサイズのブロックに対して本実施例を適用しても良いし、輝度成分以外にも、例えば色差成分に対する予測に本実施例を適用しても良い。また、実施例ではH.264/AVCで定められている8方向に沿って予測を行っているが、方向数を増やしても減らしても構わない。
【0051】
続いて、本実施例における予測式の一例について記載する。ここでは、4×4画素サイズのブロック単位で輝度成分の予測を行う場合について記載する。まず図16(1601)のように、対象ブロックの最も左上に位置する画素の座標を(0, 0)とし、水平右側に向かってx軸を、垂直下側に向かってy軸を設定する。そして、対象ブロック中の座標(x, y)における輝度値をp[x, y]、予測値をpred4x4[x, y]と表す。また、双方向予測に利用する2つの参照画素をそれぞれRef1、Ref2とする。なお、関数Min(a, b)は、2つの整数a、bのうちで小さいほうを返し、関数ROUND(a)は、実数aの小数点第1位を四捨五入した整数値を返す。
【0052】
以下では、9種類の予測方法(1602)〜(1610)のうち、DC予測(1604)を除く8種類の方向に沿った予測を行う場合について、それぞれ予測値pred4x4の計算式について記載する。
【0053】
予測方向0(Vertical)(1602)の場合、以下の数式1によって予測を行う。
(数1)
・左側および上側に隣接するブロックが利用できる場合
Ref1 = p[x, -1]
Ref2 = (p[-1, 3] + p[-2, 3] + p[-3, 3] + p[-4, 3] + 2) >> 2
pred4x4[x, y] = ROUND(Ref1 + (Ref2 Ref1) * (y+1) / 4)
・上側に隣接するブロックが利用でき、左側に隣接するブロックが利用できない場合
Ref1 = p[x, -1]
Ref2 = 2 * p[x, -1] - p[x, -4]
pred4x4[x, y] = ROUND(Ref1 + (Ref2 Ref1) * (y+1) / 4)
予測方向1(Horizontal)(1603)の場合、以下の数式2によって予測を行う。
(数2)
・左側および上側に隣接するブロックが利用できる場合
Ref1 = p[-1, y]
Ref2 = (p[3, -1] + p[3, -2] + p[3, -3] + p[3, -4] + 2) >> 2
pred4x4[x, y] = ROUND(Ref1 + (Ref2 Ref1) * (x+1) / 4)
・左側に隣接するブロックが利用でき、上側に隣接するブロックが利用できない場合
Ref1 = p[-1, y]
Ref2 = 2 * p[-1, y] - p[-4, y]
pred4x4[x, y] = ROUND(Ref1 + (Ref2 Ref1) * (x+1) / 4)
予測方向3(Diagonal Down Left)(1605)の場合、以下の数式3によって予測を行う。
(数3)
・左側および上側に隣接するブロックが利用できる場合
・x=y=3の場合
Ref1 = (p[6, -1] + 3 * p[7, -1] + 2) >> 2
Ref2 = (p[-1, 2] + 3 * p[ -1, 3 ] + 2) >> 2
pred4x4[x, y] = ROUND( (Ref1 + Ref2) / 2)
・それ以外の場合(xが3ではなく、かつyが3ではない場合)
Ref1 = ( p[x+y, -1] + 2 * p[x+y+1, -1] + p[x+y+2, -1] + 2 ) >> 2
Ref2 = ( p[-1, Min(3, x+y)] + 2 * p[-1, Min(3, x+y+1)] + p[-1, Min(3
, x+y+2)] + 2 ) >> 2
pred4x4[x, y] = ROUND(Ref1 + (Ref2 Ref1) * (y+1) / (x+y+2))
・上側に隣接するブロックが利用でき、左側に隣接するブロックが利用できない場合
・x=y=3の場合
Ref1 = (p[6, -1] + 3 * p[7, -1] + 2) >> 2
Ref2 = (p[3, -1] + p[3, -2] + p[3, -3] + p[3, -4] + 2) >> 2
pred4x4[x, y] = ROUND( (Ref1 + Ref2) / 2)
・それ以外の場合(xが3ではなく、かつyが3ではない場合)
Ref1 = ( p[x+y, -1] + 2 * p[x+y+1, -1] + p[x+y+2, -1] + 2 ) >> 2
Ref2 = (p[3, -1] + p[3, -2] + p[3, -3] + p[3, -4] + 2) >> 2
pred4x4[x, y] = ROUND(Ref1 + (Ref2 Ref1) * (y+1) / (x+y+2))
予測方向4(Diagonal Down Right)(1606)の場合、以下の数式4によって予測を行う。
(数4)
・左側および上側に隣接するブロックが利用できる場合
・x>yの場合
Ref1 = (p[x-y-2, -1] + 2 * p[x-y-1, -1] + p[x-y, -1] + 2 ) >> 2
Ref2 = (p[3, -1] + p[3, -2] + p[3, -3] + p[3, -4] + 2) >> 2
pred4x4[x, y] = ROUND(Ref1 + (Ref2 - Ref1) * x / 3)
・x<yの場合
Ref1 = (p[-1, y-x-2] + 2 * p[-1, y-x-1] + p[-1, y-x] + 2 ) >> 2
Ref2 = (p[-1, 3] + p[-2, 3] + p[-3, 3] + p[-4, 3] + 2) >> 2
pred4x4[x, y] = ROUND(Ref1 + (Ref2 - Ref1) * y / 3)
・x=yの場合
Ref1 = (p[0, -1] + 2 * p[-1, -1] + p[-1, 0] + 2) >> 2
Ref2 = (p[3, -1] + p[3, -2] + p[-1, 3] + p[-2, 3] + 2) >> 2
pred4x4[x, y] = ROUND(Ref1 + (Ref2 - Ref1) * (x+1) / 4)
予測方向5(1607)(Vertical Right)の場合、以下の数式5によって予測を行う。
(数5)
zVR = 2 * x y としたとき、
・左側および上側に隣接するブロックが利用できる場合
・zVR = 0, 2, 4, 6の場合
Ref1 = (p[x-(y>>1)-1, -1] + p[x-(y>>1), -1] + 1) >> 1
Ref2 = (p[-1, 3] + p[-2, 3] + p[-3, 3] + p[-4, 3] + 2) >> 2
pred4x4[x, y] = ROUND(Ref1 + (Ref2 - Ref1) * (y+1) / 4)
・zVR = 1, 3, 5の場合
Ref1 = (p[x-(y>>1)-2, -1] + 2*p[x-(y>>1)-1, -1] + p[x-(y>>1), -1] + 2)
>> 2
Ref2 = (p[-1, 3] + p[-2, 3] + p[-3, 3] + p[-4, 3] + 2) >> 2
pred4x4[x, y] = ROUND(Ref1 + (Ref2 - Ref1) * (y+1) / 4)
・zVR = -1の場合
Ref1 = (p[-1, 0] + 2*p[-1, -1] + p[0, -1] + 2) >> 2
Ref2 = (p[-1, 3] + p[-2, 3] + p[-3, 3] + p[-4, 3] + 2) >> 2
pred4x4[x, y] = ROUND(Ref1 + (Ref2 - Ref1) * (y+1) / 4)
・それ以外(zVR = -2, -3の場合)
Ref1 = (-1, y-1] + 2*p[-1, y-2] + p[-1, y-3] + 2) >> 2
Ref2 = (p[-1, 3] + p[-2, 3] + p[-3, 3] + p[-4, 3] + 2) >> 2
pred4x4[x, y] = ROUND(Ref1 + (Ref2 - Ref1) * (y+1) / 4)
予測方向6(Horizontal Down)(1608)の場合、以下の数式6によって予測を行う。
(数6)
zHD = 2 * y x としたとき、
・左側および上側に隣接するブロックが利用できる場合
・zHD = 0, 2, 4, 6の場合
Ref1 = (p[-1, y-(x>>1)-1] + p[-1, y-(x>>1)] + 1) >> 1
Ref2 = (p[3, -1] + p[3, -2] + p[-1, 3] + p[-2, 3] + 2) >> 2
pred4x4[x, y] = ROUND(Ref1 + (Ref2 - Ref1) * (x+1) / 4)
・zHD = 1, 3, 5の場合
Ref1 = (p[-1, y-(x>>1)-2] + 2*p[-1, y-(x>>1)-1] + p[-1, y-(x>>1)] + 2)
>> 2
Ref2 = (p[3, -1] + p[3, -2] + p[-1, 3] + p[-2, 3] + 2) >> 2
pred4x4[x, y] = ROUND(Ref1 + (Ref2 - Ref1) * (x+1) / 4)
・zHD = -1の場合
Ref1 = (p[-1, 0] + 2*p[-1, -1] + p[0, -1] + 2) >> 2
Ref2 = (p[3, -1] + p[3, -2] + p[-1, 3] + p[-2, 3] + 2) >> 2
pred4x4[x, y] = ROUND(Ref1 + (Ref2 - Ref1) * (x+1) / 4)
・それ以外(zHD = -2, -3の場合)
Ref1 = (p[x-1, -1] + 2*p[x-2, -1] + p[x-3, -1] + 2) >> 2
Ref2 = (p[3, -1] + p[3, -2] + p[-1, 3] + p[-2, 3] + 2) >> 2
pred4x4[x, y] = ROUND(Ref1 + (Ref2 - Ref1) * (x+1) / 4)
予測方向7(Vertical Left)(1609)の場合、以下の数式7によって予測を行う。
(数7)
・左側および上側に隣接するブロックが利用できる場合
・y = 0, 2の場合
Ref1 = (p[x+(y>>1), -1] + p[x+(y>>1)+1, -1] + 1) >> 1
Ref2 = (p[-1, 3] + p[-2, 3] + p[-3, 3] + p[-4, 3] + 2) >> 2
pred4x4[x, y] = ROUND(Ref1 + (Ref2 - Ref1) * (y+1) / (x+y+2))
・それ以外(y = 1, 3の場合)
Ref1 = (p[x+(y>>1), -1] + 2 * p[x+(y>>1)+1, -1] + p[x+(y>>1)+2, -1]+ 2)
>> 2
Ref2 = (p[-1, 3] + p[-2, 3] + p[-3, 3] + p[-4, 3] + 2) >> 2
pred4x4[x, y] = ROUND(Ref1 + (Ref2 - Ref1) * (y+1) / (x+y+2))
・上側に隣接するブロックが利用でき、左側に隣接するブロックが利用できない場合
・y = 0, 2の場合
Ref1 = (p[x+(y>>1), -1] + p[x+(y>>1)+1, -1] + 1) >> 1
Ref2 = 2 * p[x, -1] - p[x, -4]
pred4x4[x, y] = ROUND(Ref1 + (Ref2 - Ref1) * (y+1) / (x+y+2))
・それ以外(y = 1, 3の場合)
Ref1 = (p[x+(y>>1), -1] + 2 * p[x+(y>>1)+1, -1] + p[x+(y>>1)+2, -1]+ 2)
>> 2
Ref2 = 2 * p[x, -1] - p[x, -4]
pred4x4[x, y] = ROUND(Ref1 + (Ref2 - Ref1) * (y+1) / (x+y+2))
予測方向8(Horizontal Up)(1610)の場合、以下の数式8によって予測を行う。
(数8)
zHU = x + 2 * y としたとき、
・左側および上側に隣接するブロックが利用できる場合
・zHU = 0, 2, 4の場合
Ref1 = (p[-1, y+(x>>1)] + p[-1, y+(x>>1)+1] + 1) >> 1
Ref2 = (p[3, -1] + p[3, -2] + p[-1, 3] + p[-2, 3] + 2) >> 2
pred4x4[x, y] = ROUND(Ref1 + (Ref2 - Ref1) * (x+1) / 4)
・zHU = 1, 3の場合
Ref1 = (p[-1, y+(x>>1)] + 2*p[-1, y+(x>>1)+1] + p[-1, y+(x>>1)+2] + 2)
>> 2
Ref2 = (p[3, -1] + p[3, -2] + p[-1, 3] + p[-2, 3] + 2) >> 2
pred4x4[x, y] = ROUND(Ref1 + (Ref2 - Ref1) * (x+1) / 4)
・zHU = 5の場合
Ref1 = (p[-1, 2] + 3*p[-1, 3] + 2) >> 2
Ref2 = (p[3, -1] + p[3, -2] + p[-1, 3] + p[-2, 3] + 2) >> 2
pred4x4[x, y] = ROUND(Ref1 + (Ref2 - Ref1) * (x+1) / 4)
・それ以外(zHU > 5の場合)
Ref1 = p[-1, 3]
Ref2 = (p[3, -1] + p[3, -2] + p[-1, 3] + p[-2, 3] + 2) >> 2
pred4x4[x, y] = ROUND(Ref1 + (Ref2 - Ref1) * (x+1) / 4)
・左側に隣接するブロックが利用でき、上側に隣接するブロックが利用できない場合
・zHU = 0, 2, 4の場合
Ref1 = (p[-1, y+(x>>1)] + p[-1, y+(x>>1)+1] + 1) >> 1
Ref2 = 2 * p[-1, y] - p[-4, y]
pred4x4[x, y] = ROUND(Ref1 + (Ref2 - Ref1) * (x+1) / 4)
・zHU = 1, 3の場合
Ref1 = (p[-1, y+(x>>1)] + 2*p[-1, y+(x>>1)+1] + p[-1, y+(x>>1)+2] + 2)
>> 2
Ref2 = 2 * p[-1, y] - p[-4, y]
pred4x4[x, y] = ROUND(Ref1 + (Ref2 - Ref1) * (x+1) / 4)
・zHU = 5の場合
Ref1 = (p[-1, 2] + 3*p[-1, 3] + 2) >> 2
Ref2 = 2 * p[-1, y] - p[-4, y]
pred4x4[x, y] = ROUND(Ref1 + (Ref2 - Ref1) * (x+1) / 4)
・それ以外(zHU > 5の場合)
Ref1 = p[-1, 3]
Ref2 = 2 * p[-1, y] - p[-4, y]
pred4x4[x, y] = ROUND(Ref1 + (Ref2 - Ref1) * (x+1) / 4)
上記の実施例では、2つの参照画素のうち符号化済み(復号化済み)の画素から選択できないものの予測(例えば図4のステップ1における境界画素E、F、G、Hの予測)を、主に符号化済み隣接ブロックの同じ行(もしくは列)に属する画素の平均値によって行っているが、特に平均値でなくても、例えば最小値や最大値、あるいは中間値などを用いても良いし、これらの画素を用いた外挿予測や内挿予測など、どんな計算式を用いても良い。特に内挿予測を行う場合には線形補間、非線形補間などどのような方法を用いても良いし、外挿予測を行う場合には、例えば最小二乗法を用いた直線・放物線近似、ニュートン補間、ラグランジュ補間など、どのようなモデルを利用して予測を行っても構わない。
【0054】
図17は、図4のステップ1(402)において、外挿予測によって境界画素E、F、G、Hを予測した場合の概念図を示している。ここでは、水平軸に座標を、垂直軸に輝度値を設定している。(1701)では直線近似を行う場合について示しており、左側に隣接するブロックの最も下の行に位置する復号化画素A’、B’、C’、D’を用いて最小二乗法などを利用することによって予測直線を算出し、その直線上において境界画素E、F、G、Hの座標に対応する点を予測値とする。また、(1702)では、同じ外挿予測を放物線近似、ニュートン補間、ラグランジュ補間など曲線近似による方法によって行う場合について示しており、この場合復号化画素A’、B’、C’、D’を用いて算出した予測曲線に基づいて境界画素E、F、G、Hを予測する。上記の処理によって予測された境界画素は、例えば図4におけるステップ2の双方向予測を行う際に、参照画素の1つとして利用される。
【0055】
また、参照画素の予測に利用する情報としては、隣接ブロックの情報であれば特に同じ行(もしくは列)に属する画素に限定しない。さらに、実施例では双方向予測(例えば図4のステップ2における画素J、K、Lの予測)を、2つの参照画素を用いた線形補間によって行っているが、対象画素を挟む2つの参照画素を利用していればその補間方法は特に問わない。例えば、対象画素の予測値を2つの参照画素の任意の直線式によって表しても良い。この場合、2つの参照画素をRef1、Ref2とした場合、以下の数式9によって予測値pred4x4が計算される。
(数9)
pred4x4[x, y] = a * Ref1 + b * Ref2
ここで、a、bはそれぞれ実数の定数を表し、これらの値はあらかじめ一定の値に定めておいても良いし、ブロック単位で指定しても良い。また、図5図8)に示す画面端に対する画面内予測符号化方式(復号化方式)は、特に画面端のブロックでなくても適用可能である。すなわち、この方式を画面端以外のブロックに適用しても構わない。
【0056】
図18は、本実施例を利用した場合に生成される符号化ストリームのうち、ブロック単位で設定されるべき符号化パラメータに関する部分の構成例について示している。ここではH.264/AVCにおける処理単位と同様に、固定長サイズのマクロブロック単位で符号化モードを決定する場合について説明している。マクロブロックはさらに細かなブロックに分割することができ、分割されたブロック単位で予測符号化が行われるものとする。この時、マクロブロックごとにその座標を特定するためのマクロブロック番号(1801)と、予測方法とブロックサイズを表す符号化モード番号(1802)、そして例えば画面間予測の際の動きベクトルや画面内予測の際の予測方向など、予測を行う際に必要となる情報(1803)、そして予測差分情報(1804)が可変長符号化されて格納される。特に符号化モード番号(1802)に対しては、すべての予測手段に対して連番で割り当てても良いし、予測手段ごとに異なるビットで表しても良い。
【0057】
図19は、図18にて示したブロック単位で設定されるべき符号化パラメータに関する部分に対する別の構成例について示している。この例では、マクロブロック番号(1901)と、予測方法(1902)に対して、本実施例による隣接画素を利用した予測を行うか否かを表すフラグ(1903)を付加し、さらに予測に必要な情報(1904)と予測差分情報(1905)を格納する。
【符号の説明】
【0058】
101…原画像、102…原画像メモリ、103…ブロック分割部、104…動き探索部、105…旧画面間予測部、106…新画面内予測部、107…画面間予測部、108…モード選択部、109…減算部、110…周波数変換部、111…量子化処理部、112…可変長符号化部、113…逆量子化処理部、114…逆周波数変換部、115…加算部、116…参照画像メモリ、201…符号化ストリーム、202…可変長復号化部、203…逆量子化処理部、204…逆周波数変換部、205…旧画面内予測部、206…新画面内予測部、207…画面間予測部、208…加算部、209…参照画像メモリ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19