近年、4K(空間解像度/フレーム周波数:3840x2160/60pなど)、8K(空間解像度/フレーム周波数:7680x4320/60p, 7680x4320/120pなど)といった超高解像度映像の普及が進んでいる。超高解像度映像のデータ量は膨大であり、放送波やIP網で伝送するためには映像のデータ量を圧縮する必要がある。
映像や画像のデータ圧縮として、画像をブロック分割し、ブロック毎に離散コサイン変換(DCT;Discrete Cosine Transform)などの直交変換を施し、その結果である変換係数を量子化し、量子化された変換係数をエントロピー符号化するハイブリッド符号化方式が良く知られている。
HEVC(MPEG-H Part2 High Efficiency Video Coding)/H.265においては、離散コサイン変換に加えて、小さな輝度ブロックのイントラ予測の残差信号を符号化するために離散サイン変換(DST;Discrete Sine Transform)も利用される(特許文献1)。
また、原画像信号を解像度変換し、低解像化した画像である構造成分を符号化するとともに、原画像信号から構造成分を符号化・復号した信号を逆解像度変換したものを減じて得たテクスチャ成分について、そのヒストグラム情報を符号化する手法が提案されている(特許文献2)。
従来、自然画像の信号の統計的性質から、その主成分ベクトルであるカルーネン・レーベ変換基底が離散コサイン変換基底により近似可能であることを根拠として、画像符号化や映像符号化では離散コサイン変換が多用されてきた。また、とくに動画像の符号化においては、フレーム間やフレーム内の相関を利用して予測処理が行われ、その予測残差に対して変換処理を行うことが一般的になってきている。
まず、直交変換と予測処理を利用して映像信号のデータ圧縮を行う、従来の映像符号化装置の一例を説明する。
図9は、離散コサイン変換等の直交変換を有する従来型の映像符号化装置の構成の一例を示したブロック図である。映像符号化装置は、ブロック分割部10と、メモリ11と、予測部12と、減算部13と、直交変換部14と、走査部15と、量子化部16と、エントロピー符号化部17と、逆量子化部18と、走査部19と、逆直交変換部20と、加算部21と、によって構成される。
ブロック分割部10は、入力映像のフレームを以後の処理を行う単位となる部分領域に分割する。ブロック分割は例えば、以後の予測部12や直交変換部14に応じて分割の仕方を変えても構わないし、同一としても構わない。ブロック分割形状は、矩形(正方形や長方形)とするのが典型的であるが、これらに限られない。ブロック分割部10は、図9には示さない最適化処理部によって他の処理部(予測部12、直交変換部14、走査部15、量子化部18など)の処理パラメータ(例えば、予測部12において予測に用いる参照フレーム、直交変換部14において用いる基底関数、走査部15における係数の走査順序、量子化部18における量子化幅や係数のシグナリングの有無など)とともにレート歪関数(ビットレートと符号化誤差に基づいて定義される評価値)が最適値をとるよう、その分割形状や分割サイズを適応的に制御しても構わない。
メモリ11は、映像符号化装置の動作の各段階において、当該段階までに符号化を完了した映像の部分領域(すでに符号化を完了したフレームや、現に符号化を行っているフレームの中のすでに符号化済みの部分領域)における局部復号画像を保持する。この局部復号画像は、映像符号化装置内において復号操作(逆量子化部18、走査部19、逆直交変換部20、及び加算部21の処理)を行った結果を指す。
予測部12は、メモリ11に記憶された局部復号画像から、ブロック分割部10出力のブロック(以下、対象ブロック)内の画素値列の近似(予測という)を試み、当該近似結果を予測ブロックとして出力する。予測には、例えば動き補償予測及び画面内予測が含まれる。
動き補償予測は、対象ブロック内画素値列を近似する部分領域をメモリ11内に保持された他の時刻(ブロック分割部10がブロック分割を行ったフレームとは異なる時刻)のフレーム内から探索し、最も近似度の高い(例えば、二乗誤差和の小さい)部分領域を求める。この最も近似度の高い部分領域が対象ブロック位置に対してどこにあるかを表す相対位置を動きベクトルとして求めてエントロピー符号化部17に渡すとともに、当該最も近似度の高い部分領域の画素値列を予測ブロックとして減算手段13に渡す。
画面内予測は、例えば、メモリ11内に保持された現フレーム(ブロック分割部10がブロック分割を行ったフレームと同時刻のフレーム)の符号化済み部分領域の画素値列から、対象ブロック内の画素値列の近似を試みる。例えば、対象ブロックの周囲に存在する符号化済み画素(参照画素)の画素値列に基づき、その平均値を求め、予測ブロックの画素値をすべて当該平均値とすることで予測ブロックを生成する(平均値予測)。あるいは、4画素からなる参照画素列から例えば双一次演算によって予測ブロックの画素値を生成する(平面予測、プレーナ予測)。また、例えば、参照画素列を所定の方向に外挿することで予測ブロックを生成する(方向予測)。さらに例えば、対象ブロックの画素値列を最も近似する部分領域を、メモリ11内に保持された現フレームの符号化済み部分領域の画素値列内から探索し、この最も近似度の高い部分領域が対象ブロック位置に対してどこにあるかを表す相対位置を動きベクトルとして求めてエントロピー符号化部17に渡すとともに、当該最も近似度の高い部分領域の画素値列を減算手段13に渡す(イントラブロックコピー)。
減算部13は、ブロック分割部10出力の対象ブロックの各画素値から、予測部12出力の予測ブロックの各画素値を減じ、その結果を残差ブロックとして出力する。
直交変換部14は、残差ブロックに対して直交変換を適用し、その結果たる変換係数列(変換係数値列)を出力する。直交変換としては、例えば離散コサイン変換、離散サイン変換、アダマール変換、ウェーブレット変換や、それらを整数近似した変換を用いることができる。
走査部15は、直交変換部14の出力する2次元の変換係数列を所定の順序において走査し、1次元的な数列に並べ替えて出力する。走査部15の走査順序は例えば、直流成分から低周波成分そして高周波成分へとジグザグ状に走査(ジグザグ走査)したり、主走査(例えば、水平周波数の昇順)と副走査(例えば、垂直周波数の昇順)の組によるラスタ走査を適用したり、あるいはヒルベルト走査を適用することができる。
量子化部16は、走査部15からの変換係数列に対して量子化を行い、量子化インデックス列に変換する。量子化は、例えば所定の数値(量子化幅)によって各変換係数値を除し、その商を量子化インデックスとする。この量子化幅は、変換係数列の何番目か(周波数がいずれであるか)に依らず一定であっても構わないし、周波数に応じて量子化幅を違えても構わない。周波数に応じて量子化幅を違える場合には、例えば、周波数ごとの量子化幅を表(量子化テーブル)として定義しておく。
また、量子化部16は、変換係数列を途中で打ち切っても構わない。例えば、量子化部16は、変換係数列のn番目(nは1以上かつ変換係数列の総数以下の整数値)以降の変換係数の絶対値が所定の閾値(例えば、0、1あるいは2など)以下となった場合に、n番目以降の係数がすべて0であるものとして、以降のエントロピー符号化17への数値の受け渡しを打ち切っても構わない。
エントロピー符号化部17は、量子化部16から出力された量子化インデックス列や、予測部12から出力された動きベクトルに対してエントロピー符号化を適用し、その結果たるビット列を出力する。エントロピー符号化部17は、このほか予測部12がいかなる予測を行ったかの識別子(モード情報)や、直交変換部14が適用した基底関数の種別、ブロック分割部10におけるブロック分割形状、量子化部16における量子化幅に関する情報などを符号化対象に含めても構わない。
逆量子化部18は、量子化インデックス列を変換係数列に変換する。逆量子化部18は、量子化部16がある量子化インデックスを出力する場合に、その入力値がとり得る範囲の代表値を求める操作である。この代表値は、例えば、入力値がとり得る範囲の上限値及び下限値の相加平均値とすることができる。
走査部19は、走査部16の逆操作により、逆量子化部18から出力された1次元の変換係数列を2次元の変換係数列に変換する。
逆直交変換部20は、直交変換部14の逆変換を実行し、走査部19からの2次元の変換係数列を2次元の残差画素値列(復号残差ブロック)に変換する。例えば、直交変換部14が離散コサイン変換を行う場合には、逆直交変換部20は逆離散コサイン変換を実行する。また、例えば、直交変換部14が離散サイン変換を行う場合には、逆直交変換部20は逆離散サイン変換を実行する。なお、逆直交変換部20により得られた2次元残差画素値列は、減算部13の出力の残差ブロックに対応するが、途中の直交変換及び量子化等に伴う情報誤差を含んでいることから、「復号残差ブロック」と呼んで区別する。
加算部21は、逆直交変換手段からの復号残差ブロックの画素値列と、予測部21からの予測ブロックの画素値列を画素ごとに加算し、その結果の画素値列を復号ブロックとして出力する。得られた復号ブロックはメモリ11の当該ブロック位置の画素値列として記録される。
以上が、従来型の映像符号化装置の構成及び動作の一例である。
以下、本発明の実施の形態について、図面を参照しつつ説明する。
(実施の形態1)
図1は、本発明の実施の形態1に係る映像符号化装置の構成の一例を示したブロック図である。実施の形態1に係る映像符号化装置は予測処理を利用するものであり、以下では、映像(動画像)の符号化装置の構成及び動作について、図9に示した従来型の映像符号化装置との差異に注目しつつ説明する。
本構成において映像符号化装置100は、ブロック分割部10と、メモリ11と、予測部12と、減算部13と、直交変換部14と、走査部15と、波形近似部30と、エントロピー符号化部17と、走査部19と、逆直交変換部20と、加算部21と、によって構成される。
ブロック分割部10と、メモリ11と、予測部12と、減算部13と、直交変換部14と、走査部15と、走査部19と、逆直交変換部20と、加算部21と、については図9の従来型の映像符号化装置の動作と同様であるから説明を省略する。
波形近似部30は、走査部15からの1次元の変換係数列の入力に対し、該変換係数列をパラメトリックな関数により近似する際のパラメータと、当該近似により近似しきれなかった波形成分(残差情報)とを、エントロピー符号化部17へ出力するとともに、当該近似及び残差情報により近似表現した変換係数列を、復号係数ベクトル(復号変換係数列)として走査部19へ出力する。
図2は、波形近似部30の構成の一例を示したブロック図である。図2において、波形近似部30は、波形フィッティング部31(311,312,313)と、量子化部32と、逆量子化部33と、加算部34とによって構成される。なお、後述のとおり、量子化部32、逆量子化部33、及び加算部34は、必須の構成ではない。波形フィッティング部31は1つだけで構成してもよいし、多段接続によって構成しても構わない。図2の例では、波形フィッティング部311乃至313の3段の接続により構成されている。すなわち、波形フィッティング部311により第一の波形近似を行い、この波形近似で近似しきれなかった成分を波形フィッティング部312で波形近似する。さらに波形フィッティング311及び312で波形近似しきれなかった成分を波形フィッティング部313で近似する。
波形フィッティング部31m (m∈{1,2,3})までで近似しきれなかった成分(残差成分)をs(m)とおく(ここで、s(m)はベクトル又は数値列である)。なお、iは1以上変換係数列の総数以下の整数とし、s(m)のi番目の成分値をs(m)(i)とおく。ただし、s(0)は走査部15からの変換係数列を意味し、s(0)(i)はそのi番目の成分とする。
波形フィッティング部31mは、入力されたベクトルs(m−1)をパラメトリックな関数(基底ベクトルb(m))により波形近似し、その近似のためのパラメータc(m)と、残差成分s(m)とを出力する。さらに、波形フィッティング部31mは、波形フィッティング部31mまでのパラメータc(1)乃至c(m)により近似した変換係数列r(m) (そのi番目の成分をr(m)(i)とおく)も出力する。
図2の波形近似部30(特に、波形フィッティング部311)の行う処理について、図3に基づいて説明する。図3は、変換係数列をパラメトリックな関数により近似する過程を例示した図である。
波形の近似処理に際して、予め、各波形フィッティング部31(311〜31m)において使用される基底ベクトルb(1)乃至b(m)を準備する。基底ベクトルbは所定の関数に基づく数値列として設定することができ、例えば、b(1)を指数関数に基づくものとし、b(2)を低周波振動関数に基づくものとし、b(3)を高周波振動関数に基づくものとするといったように、走査部15から入力される変換係数列のパラメトリックな性質に基づいて、基底ベクトルbを定めることができる。基底ベクトルは、予め代表的な関数に基づく数値列を基底ベクトルとして設定しても良く、或いは、実験的に類似する画像の特性を調べ、例えば主成分抽出分析等をしてカルーネン・レーベ変換基底を求める等、最適な基底ベクトルを作成しても良い。
図3において、s(0)は走査部15からの変換係数列の一例である。これに対して、波形フィッティング部311では、例えば、基底ベクトルb(1)として指数関数exp(−Ax):[Aは定数]に基づく数値列を準備し、この基底ベクトルb(1)に乗算してs(0)の変換係数列にフィッティングさせるための最も適切なフィッティング係数(スカラー係数)を求め、当該係数を量子化してc(1)(この場合はスカラー)を求め、これをパラメータとする。
なお、基底ベクトルb(1)として指数関数αexp(−βx)に基づく数値列を利用し、指数関数のフィッティングをα、βの2つの係数で行うこともできる。このような複数の係数を含む関数を用いるときは、パラメータc(1)を、α、βに基づく複数のスカラーを含むパラメータ、又はベクトルとして取り扱うこととなる。
波形フィッティング部311では、基底ベクトルb(1)にフィッティング係数を乗算して近似した変換係数列r(1)を出力するとともに、変換係数列s(0)と近似した変換係数列r(1)との差分を残差成分s(1)として出力する。この近似した変換係数列r(1)と、その残差成分s(1)は、次の波形フィッティング部312の入力信号となる。
次の波形フィッティング部312では、基底ベクトルb(2)として例えばサイン関数sin(ω1x):[ω1は定数]に基づく数値列を準備し、この基底ベクトルb(2)に乗算して、残差成分s(1)にフィッティングさせるための最も適切なフィッティング係数を求め、当該係数を量子化してパラメータc(2)とする。なお、波形フィッティング部312では、ここまでの基底ベクトルb(1)、b(2)とパラメータc(1)、c(2)で近似した変換係数列r(2)と、さらに残る残差成分s(2)を出力し(図示せず)、次の波形フィッティング部313の入力データとする。一般には、各波形フィッティング部31は、それまでのフィッティングで再構築された変換係数列rと、残った残差成分sを出力する。
図4は、波形フィッティング部31(31m)の構成の一例を示すブロック図である。図4において、波形フィッティング部31は、内積演算部40と、量子化部41と、逆量子化部42と、スカラー乗法部43と、減算部44と、加算部45と、によって構成される。
内積演算部40は、入力された残差成分s(m−1)を全成分並べたベクトルと基底ベクトルb(m)との内積を演算し、その結果たる内積値p(m)を出力する。好ましくは、基底ベクトルb(m)は単位ベクトルとする。内積値p(m)は次式(1)で算出される。なお、Nは変換係数列の総数である。
係数値列(s(m−1)(i))i=1,2,…,Nを数列(t(m)・b(m) (i))i=1,2,…,Nにより近似する場合の最適なフィッティング係数(ここではスカラー係数)t(m)は、次式(2)で求められる。
図4の波形フィッティング部31mは、フィッティング係数t(m)を量子化した数値c(m)をパラメータとして出力すべく動作するものであるが、後述のように、波形フィッティング部31は、このフィッティング係数t(m)をパラメータとして出力しても良い。
量子化部41は、内積値p(m)を所定の量子化幅q(m) (q(m)は正の実数)によって量子化し、その結果c(m)を出力する。例えば、基底ベクトルb(m)が単位ベクトルの場合には、次式(3)の演算を行う。
なお、
は、zより大きくない最大の整数を表す(床関数)。
あるいは、基底ベクトルb(m)が単位ベクトルとは限らない場合には、量子化部41はより一般的に、次式(5)を実行してc(m)を求める。
なお、内積演算部40と量子化部41を別々に設けず、これらを一体化した処理部により、次式(6)の演算を実行して、直接c(m)を求めても構わない。
数式(3)、(5)及び(6)のいずれも、数式(2)のフィッティング係数を量子化幅q(m)により量子化した数値c(m)を演算する数式に相当する。
逆量子化部42は、量子化した数値c(m)に量子化幅q(m)を乗じ、その結果をフィッティング係数(ここではスカラー係数)t(m)の近似値u(m)として出力する。すなわち、近似値u(m)を、次式(7)で求める。
スカラー乗法部43は、基底ベクトルb(m)の各成分にスカラーu(m)を乗じ、次式(8)により、近似波形σ(m)(i) (i∈{1,2,…,N}) (これをiに関して列ベクトルとして並べたものを単にベクトルσ(m)と表記する)を得る。
なお、逆量子化部42とスカラー乗法部43を別々に設けず、これらを一体化した処理部により、次式(9)の演算を実行して、直接近似波形σ(m)(i)を求めても構わない。
減算部44は、次式(10)に基づいて、入力された各残差成分s(m−1)(i)から近似波形の各標本値σ(m)(i)を減じ、その結果を各残差成分s(m)(i)として出力する。
加算部45は、次式(11)に基づいて、入力された各変換係数列r(m−1)(i)に近似波形の各標本値σ(m)(i)を加え、その結果を各変換係数列r(m)(i)として出力する。
図2に戻って波形近似部30の動作を説明する。
波形フィッティング部31m (mは1以上M以下の整数、図3の例ではM=3)は、入力された数列(s(m−1)(i))i∈{1,2,…,N}、数列(r(m−1)(i))i∈{1,2,…,N}及び基底ベクトルb(m)に対し前述の処理を行い、パラメータc(m)、残差成分の数列(s(m)(i))i∈{1,2,…,N}、及び近似波形の変換係数列(r(m)(i))i∈{1,2,…,N}を出力する。なお、以下の説明及び図面においては、数列(s(m)(i))i∈{1,2,…,N}や数列(r(m)(i))i∈{1,2,…,N}を、iに関して列に並べて列ベクトルs(m)や列ベクトルr(m)と表記する場合がある。
初段の波形フィッティング部311の入力については、すべてのi∈{1,2,…,N}に対し、r(0)(i)=0とする。また、i∈{1,2,…,N}に対し、s(0)(i)には走査部15から出力される1次元の変換係数列の第i項の値を設定する。
なお、これまで、各波形フィッティング部31は、フィッティング係数t(m)を量子化した数値c(m)をパラメータとして出力すると説明したが、数式(2)で求めたフィッティング係数t(m)を、近似のためのパラメータとして出力しても良い。本発明において、波形フィッティングの結果のパラメータとは、フィッティング係数t(m)又はこのフィッティング係数t(m)を量子化した数値c(m)を意味する。前述のとおり、各パラメータはベクトル(複数のスカラーを含む)の場合もある。
量子化部32は、波形フィッティング部313から出力された残差成分の数列(s(3)(i))i∈{1,2,…,N}を量子化し、量子化インデックス列を出力する。量子化部32は、例えば、残差成分s(3)(i) (i∈{1,2,…,N})を量子化幅Q(i)で量子化し、その結果を量子化インデックスd(i)として出力する。量子化インデックスd(i)は、次式(12)で求められる。
なお、周波数ごとに定義された量子化幅Q(i)の数列(Q(i))i∈{1,2,…,N}は、例えば、量子化テーブルとして定義しておくことができる。
ここでは、波形近似部30は、残差成分の数列(s(3)(i))i∈{1,2,…,N}を量子化した量子化インデックスd(i)を出力すると説明したが、波形フィッティング部31の最終段で求めた残差成分の数列(s(m)(i))i∈{1,2,…,N}をそのまま、近似の際に生じる誤差を補償するための残差情報として出力しても良い。また、数列の一部を残差情報としても良い。本発明において、残差情報とは、波形フィッティング部31の最終段で求めた残差成分の数列(s(m)(i))i∈{1,2,…,N}又はこの残差成分の数列(s(m)(i))を量子化した量子化インデックス(d(i))i∈{1,2,…,N}の少なくとも一部を含む情報を意味する。
例えば、波形近似部30は、残差情報の出力を途中で打ち切っても構わない。波形近似部30は、量子化インデックス列のn番目(nは1以上かつインデックス列の総数以下の整数値)以降の量子化インデックスの絶対値が所定の閾値以下となった場合に、n番目以降の係数がすべて0であるものとして、以降のエントロピー符号化部17への数値の受け渡しを打ち切っても構わない。同様に、波形フィッティングの結果のパラメータについても、残差成分の数列(ベクトル)全体の絶対値が所定の閾値以下となった場合に、それ以降の波形フィッティングの結果のパラメータがすべて0であるものとして、以降のエントロピー符号化部17への数値の受け渡しを打ち切っても構わない。
逆量子化部33は、各量子化インデックスd(i)に量子化テーブル内の各量子化幅Q(i)を乗じ、その結果をe(i)として出力する。
加算部34は、波形フィッティング部31の最終段(図2の構成では波形フィッティング部313)の出力する近似波形の変換係数列(r(3)(i))i∈{1,2,…,N}に、逆量子化部33の出力する(e(i))i∈{1,2,…,N}をそれぞれ加算し、その結果を復号変換係数列(f(i))i∈{1,2,…,N}として出力する。すなわち、f(i)は次式(14)で表わされる。
なお、波形近似部30は、量子化部32、逆量子化部33、及び加算部34を設けず、波形フィッティング部の最終段(図3の例では波形フィッティング部313)の出力する近似波形の変換係数列(r(3))i∈{1,2,…,N}を復号変換係数列(f(i))i∈{1,2,…,N}として出力するよう構成しても構わない。この場合は、f(i)は次式(15)となる。
図1において、エントロピー符号化部17は、波形近似部30から出力されたパラメータ列c(1),c(2),…,c(M) (Mは波形近似部30内の波形フィッティング部の段数を表す整数で、図3の例ではM=3)や、残差情報(量子化インデックス列)d(1),d(2),…,d(N) (Nは直交変換部14の出力する変換係数列の総数を表す整数)、予測部12から出力された動きベクトル等に対してエントロピー符号化を適用し、その結果たるビット列を出力する。エントロピー符号化部17は、このほか予測部12がいかなる予測を行ったかの識別子(モード情報)や、直交変換部14が適用した基底関数の種別、ブロック分割部10におけるブロック分割形状、量子化部16における量子化幅に関する情報などを符号化対象に含めても構わない。
エントロピー符号化部17は、残差情報(量子化インデックス列)d(1),d(2),…,d(N)の一部又は全部を符号化しなくても構わない。また、エントロピー符号化部17はパラメータ列c(1),c(2),…,c(M) の一部を符号化しなくても構わないし、またそれら全部を符号化しないことがあっても構わない。
例えば、量子化インデックス列d(1),d(2),…,d(N)は、小さい数値に収束した場合は符号化及び出力をしなくても良い。また、波形フィッティング部313の残差成分s(3)が十分小さく、c(4)以下のパラメータが十分に小さくなる場合には、パラメータ列としてc(1),c(2),c(3)のみを符号化して伝送するだけであっても良い。
このように、重要性の低いデータについて、符号化を行わず、出力ビット列から削除することは、波形近似部30又はエントロピー符号化部の処理として行うことができる。このような符号化の省略により、一層のデータ圧縮ができる。
なお、波形近似部30からの出力情報を全てエントロピー符号化したとしても、波形フィッティングのパラメータの高次のものや、残差情報はほぼ0に収束するから、変換係数列を直接エントロピー符号化したときよりも、全体のデータ量が減少する場合が多い。
次に、映像復号装置について説明する。
図5は、本発明に係る映像復号装置の構成の一例を示したブロック図である。図5において映像復号装置200は、エントロピー符号化部50と、係数復元部51と、走査部52と、逆直交変換部53と、メモリ54と、予測部55と、加算部56と、によって構成される。
エントロピー復号部50は、映像符号化装置100のエントロピー符号化部17によって符号化されたビット列を復号し、パラメータ(例えば、フィッティング係数を量子化した数値列)c(1),c(2),…,c(M)及び残差情報(例えば、量子化インデックス列)d(1),d(2),…,d(N)を得る。
係数復元部51は、パラメータ列c(1),c(2),…,c(M)及び量子化インデックス列d(1),d(2),…,d(N)から復号変換係数列f(1),f(2),…,f(N)を得る。
図6は、係数復元部51の構成の一例を示したブロック図である。係数復号部51は、逆量子化部59(591乃至59M)と、スカラー乗法部60(601乃至60M)と、加算部61(611乃至61M)と、逆量子化部62とによって構成される。なお、図6においてはM=3である。また、後述のとおり、逆量子化部62と加算部61Mは必須のものではない。
逆量子化部59m (mは1以上M以下の整数)は、波形フィッティング部31の逆量子化部42と同様に、各パラメータc(m) (m∈{1,2,…,M})に量子化テーブル内の各量子化幅q(m)を乗じ、その結果を係数u(m)として出力する。
スカラー乗法部60m (mは1以上M以下の整数)は基底ベクトルb(m)に係数u(m)を乗じ、その結果をベクトルσ(m)として出力する。
加算部611は、スカラー乗法部601の出力するベクトルσ(1)と、スカラー乗法部602の出力するベクトルσ(2)とのベクトル加算を行い、その結果を出力する。
加算部61mは、2≦m≦M−1において、加算部61(m−1)の出力するベクトルと、スカラー乗法部60(m+1)の出力するベクトルσ(m+1)とのベクトル加算を行い、その結果を出力する。
逆量子化部62は、波形近似部30の逆量子化部33と同様に、各量子化インデックスd(i) (i∈{1,2,…,N})に量子化テーブル内の各量子化幅Q(i)を乗じ、その結果をe(i)として出力する。
加算部61Mは、加算部61(M−1)の出力値と、逆量子化部62の出力値e(i)とのベクトル加算を行い、その結果を復号変換係数列f(1),f(2),…,f(N)として出力する。
なお、係数復元部51において、逆量子化部62と加算部61Mを設けず、加算部61(M−1)の出力を以て復号変換係数列f(1),f(2),…,f(N)としても構わない。
図5に戻って映像復号装置200の構成及び動作の説明を続ける。
走査部52は、映像符号化装置100の走査部16の逆操作により、係数復元部51から出力された1次元の復号変換係数列f(1),f(2),…,f(N)を2次元の復号変換係数列に変換する。
逆直交変換部53は、映像符号化装置100の直交変換部14の逆変換を実行し、走査部52からの2次元の復号変換係数列を2次元の残差画素値列(復号残差ブロック)に変換する。例えば、直交変換部14が離散コサイン変換を行う場合には、逆直交変換部53は逆離散コサイン変換を実行する。また、例えば、直交変換部14が離散サイン変換を行う場合には、逆直交変換部53は逆離散サイン変換を実行する。なお、得られた復号残差ブロックは、映像符号化装置100の減算部13の出力の残差ブロックに対応するものであり、逆直交変換部20の出力と同一のものである。
メモリ54はブロック単位で順次復号される映像の部分領域を、ブロック位置に対応する所定の記憶領域に順次書き込むことで復号画像を構成する。メモリ54には、復号処理の各段階において、それまでに復号された映像のフレームが蓄積されている。
予測部55は、メモリ54に記憶された復号画像から、ブロック分割部10出力のブロック(対象ブロック)内の画素値列の近似(予測)を試み、当該近似結果を予測ブロックとして出力する。予測部55の予測の動作は、映像符号化装置100の予測部12の動作と同様である。
加算部56は、予測部55による予測ブロックの各画素値と、逆直交変換部53からの復号残差ブロックの各画素値との和を画素ごとに求めることで復号ブロックを生成する。加算部56により生成された復号ブロックの画素値列は、メモリ54の中のブロック位置に対応する記憶領域に記録される。
メモリ54内において復号画像フレームが所定の枚数だけ構成されるまで以上の動作を繰り返す。ここで所定の枚数とは、画像フレームを正しい表示順で表示するのに必要な枚数で、例えば映像符号化のGOP(Group Of Pictures)構造の1周期分である。メモリ54からは、表示順で復号画像フレームを読みだすことで、出力映像が得られる。
なお、映像符号化装置100側から伝送されたビット列と、映像復号装置200の構成の組み合わせとしては、様々なケースが考えられるが、過不足の情報を適宜削除又は補充して処理を行うことができる。例えば、映像符号化装置100側から伝送された符号化ビット列が、パラメータ列c(1),c(2),…,c(M)及び量子化インデックス列d(1),d(2),…,d(N)を含み、映像復号装置200の係数復号部51が逆量子化部62と加算部61Mを有しない場合、映像復号装置200側では、エントロピー復号されたデータから、パラメータ列c(1),c(2),…,c(M)のみを抽出して、このパラメータ列c(1),c(2),…,c(M)から復号変換係数列f(1),f(2),…,f(N)を得て、処理を行うことができる。
また反対に、映像復号装置200の係数復号部51が、逆量子化部59(591乃至59M)と、スカラー乗法部60(601乃至60M)と、加算部61(611乃至61M)と、逆量子化部62とを全て備えている場合において、映像符号化装置100側から伝送されたビット列が、パラメータ列c(1),c(2),…,c(M)を含み、残差情報を含んでいないとき、復号装置側で適宜残差情報(量子化インデックス列)d(1),d(2),…,d(N)を補って(例えば、これら量子化インデックス列を全て0データとして作成して)処理を行い、復号変換係数列f(1),f(2),…,f(N)を得ることができる。
(実施の形態2)
以上では、予測処理を含む映像(動画像)の符号化装置及び復号装置を説明したが、本発明に係る波形近似部30を静止画用の符号化装置に適用し、また係数復元部51を静止画用の符号化装置に適用しても構わない。以下に、本発明の実施の形態2として、予測処理を含まない、静止画用の符号化装置及び復号装置について説明をする。
動き補償予測や画面内予測といった予測処理を有しない静止画像の映像符号化装置(静止画の集合として動画像を符号化する場合を含む)の場合には、符号化装置内での復号処理や予測ブロックを求める処理が不要であり、符号化装置を簡略化して構成することができる。
図7は、本発明に係る映像符号化装置(予測処理部を有しないもの)の構成の一例を示したブロック図である。
本構成において映像符号化装置101は、ブロック分割部10と、直交変換部14と、走査部15と、波形近似部30と、エントロピー符号化部17と、によって構成される。
ブロック分割部10については図9の従来型の映像符号化装置の動作と同様であるから説明を省略する。
直交変換部14は、予測残差ではなく、ブロック分割部10から出力された画像の画素値そのものに対して直交変換を適用し、その結果たる変換係数列を出力する。直交変換としては、例えば離散コサイン変換、離散サイン変換、アダマール変換、ウェーブレット変換や、それらを整数近似した変換を用いることができることは従来と同様である。
走査部15は、直交変換部14の出力する2次元の変換係数列を所定の順序において走査し、1次元的な数列に並べ替えて出力する。これは従来型の映像符号化装置の動作と同様である。
波形近似部30は、図2で説明した波形近似部30の構成と基本的に同様であり、波形フィッティング部31(311,312,313)と、量子化部32とを備え、パラメータ(フィッティング係数を量子化した数値列)c(1),c(2),…,c(M)及び残差情報(量子化インデックス列)d(1),d(2),…,d(N)を出力する。なお、映像符号化装置101は予測処理を行わないから、逆量子化部33と、加算部34は不要であり、復号変換係数列f(1),f(2),…,f(N)は出力しない。
エントロピー符号化部17は、図1の映像符号化装置100のエントロピー符号化部17と同様に、波形近似部30から出力されたパラメータ列c(1),c(2),…,c(M)や、量子化インデックス列d(1),d(2),…,d(N)に対してエントロピー符号化を適用し、その結果たるビット列を出力する。
以上が、符号化装置101の構成と動作の概要である。次に、図7の符号化装置に対応する復号装置の構成例について説明する。
図8は、本発明に係る映像復号装置(予測処理部を有しないもの)の構成の一例を示したブロック図である。
本構成において映像復号装置201は、エントロピー符号化部50と、係数復元部51と、走査部52と、逆直交変換部53と、メモリ54と、によって構成される。
エントロピー符号化部50と、係数復元部51と、走査部52の構成及び動作は、図5の映像復号装置200の各部の構成及び動作と同様であり、係数復元部51は、パラメータ列c(1),c(2),…,c(M)及び残差情報(量子化インデックス列)d(1),d(2),…,d(N)から復号変換係数列f(1),f(2),…,f(N)を得る。また、走査部52は、係数復元部51から出力された1次元の復号変換係数列f(1),f(2),…,f(N)を2次元の復号変換係数列に変換する。
図8の映像復号装置201は、予測処理を行わないため、逆直交変換部53が予測残差の復号値ではなく、画像の復号値を出力し、この画像の復号値をメモリ54に書き込むことで復号画像が構成される。
このように実施の形態2に係る映像符号化装置101及び映像復号装置201によれば、静止画について、従来よりも符号化効率を高めることができる。
上述の実施形態は代表的な例として説明したが、本発明の趣旨及び範囲内で、多くの変更及び置換ができることは当業者に明らかである。したがって、本発明は、上述の実施形態によって制限するものと解するべきではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。例えば、実施形態に記載の複数の構成ブロックを1つに組み合わせたり、あるいは1つの構成ブロックを分割したりすることが可能である。