説明

符号化装置、復号装置及びプログラム

【課題】直交変換または逆直交変換を整数精度で行う際に、基底ベクトルのノルムをできるだけ等しくすると共に、基底ベクトルの直交性を考慮した基底を用いることにより、符号化効率の改善を可能にする。
【解決手段】符号化装置11の直交変換部3は、整数DCT基底を用いてDCTを行う。直交変換部3にて用いる整数DCT基底は、直交変換基底算出装置20により算出される。直交変換基底算出装置20の基底算出手段22は、小数DCT基底の各要素が整数に丸められた基底の各要素を±n(nは1以上の整数)の範囲で操作し、基底ベクトルのノルムの大きさの統一性と基底ベクトルの直交性とを向上させるための以下の数式のコスト関数を用いて、コストが最小になるように整数DCT基底の要素を求め、整数DCT基底を出力する。
cost=a×Σ|(xi,xi)−b|+Σ|(xi,xj)|

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像等の信号を符号化する直交変換技術に関し、特に、整数精度の直交変換を行う符号化装置、復号装置及びプログラムに関する。
【背景技術】
【0002】
従来、放送や動画像の配信等のシステムに用いられる映像符号化方式として、AVC/H.264の標準規格が知られている。この映像符号化方式では、画面内予測や動き補償予測を行い、予測画像と入力画像との間の差分信号に対して、4×4画素、8×8画素等の2次元ブロック毎に直交変換及び量子化を行い、エントロピー符号化を行うことにより、信号圧縮を実現する。2次元ブロックの直交変換には、復号側でミスマッチが起こらないように、整数精度のDCT(Discrete Cosine Transform:離散コサイン変換)が用いられる。以下、整数精度のDCTを整数DCTという。
【0003】
整数精度の直交変換基底としては、AVC/H.264の標準規格で用いられている整数DCTの直交変換基底の他に、特許文献1、非特許文献1に記載のものが知られている。特許文献1には、小数精度の直交変換基底をスカラー倍して最も近い整数に丸め、基底ベクトルのノルム(要素の2乗和)が誤差1%以内になるように基底ベクトルの要素を操作し、基底ベクトルの各要素が32未満のものを直交変換基底として使用する技術が記載されている。また、非特許文献1には、特許文献1と同様に、整数DCTの基底ベクトルのノルムができるだけ等しくなるように基底ベクトルの要素を操作して得られる、統一的な4×4、8×8、16×16、32×32要素からなる直交変換基底が記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特表2011−504000号公報
【非特許文献】
【0005】
【非特許文献1】A. Fuldseth, G. Bjontegaard, M. Sadafale, M. Budagavi, "Transform design for HEVC with 16 bit intermediate data representation," Doc JCTVC-E243, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, Geneva, CH, March 2011
【発明の概要】
【発明が解決しようとする課題】
【0006】
前述の特許文献1または非特許文献1に記載された整数DCTの直交変換基底を用いることにより、AVC/H.264の標準規格による整数DCTの直交変換基底に比べ、精度良く整数変換を行うことができる。しかし、この整数精度の直交変換基底を算出する過程で基底ベクトルの要素を操作する際に、基底ベクトルの直交性を考慮しておらず、特に、16×16、32×32等の大きいブロックの変換を行う際に、精度が悪くなるという問題があった。これは、符号化装置において整数精度の直交変換を行う場合のみならず、復号装置において整数精度の逆直交変換を行う場合も同様である。
【0007】
そこで、本発明は前記課題を解決するためになされたものであり、その目的は、直交変換または逆直交変換を整数精度で行う際に、基底ベクトルのノルムをできるだけ等しくすると共に、基底ベクトルの直交性を考慮した基底を用いることにより、符号化効率の改善を可能にした符号化装置、復号装置及びプログラムを提供することにある。
【課題を解決するための手段】
【0008】
前記目的を達成するために、本発明による請求項1の符号化装置は、入力信号を直交変換して直交変換係数を生成し、前記直交変換係数を量子化して符号化信号を出力する符号化装置において、N点(Nは1以上の整数)の整数精度の直交変換基底を用いて、前記入力信号を直交変換する直交変換部を備え、前記直交変換部が、所定の小数精度の正規直交変換基底の各要素をc倍(c>1)して得られた整数の基底に対し、前記整数の基底の各要素を±n(nは1以上の整数)の範囲で操作したときの基底ベクトルをx1,x2,・・・,xNとし、aを所定の正数とし、各基底ベクトルにおける理想のノルムの値をb=c×cとし、i=1,2,・・・,N、j=1,2,・・・,N、i<jとし、(A,B)をベクトルA及びBの内積値とする場合、以下の数式
cost=a×Σ|(xi,xi)−b|+Σ|(xi,xj)|
により、前記コスト(cost)を最小とする各基底ベクトルの要素を、前記整数精度の直交変換基底として用いる、ことを特徴とする。
【0009】
また、本発明による請求項2の符号化装置は、請求項1に記載の符号化装置において、aをNとすることを特徴とする。
【0010】
また、本発明による請求項3の符号化装置は、請求項1または2に記載の符号化装置において、iを2とし、jを2以外の偶数値とすることを特徴とする。
【0011】
また、本発明による請求項4の符号化装置は、請求項3に記載の符号化装置において、前記基底ベクトルxi,xjが、第1番目から数えて複数個の要素から構成される場合、前記数式の内積演算は、前記複数個の要素のうち、第1番目から複数個の半分までの要素から構成されるベクトルxi',xj'にて行われる、ことを特徴とする。
【0012】
また、本発明による請求項5の符号化装置は、請求項1から4までのいずれか一項に記載の符号化装置において、前記直交変換部が、以下の16×16要素からなる整数DCT基底

を用いて、前記入力信号を直交変換することを特徴とする。
【0013】
また、本発明による請求項6の符号化装置は、請求項1から4までのいずれか一項に記載の符号化装置において、前記直交変換部が、以下の32×32要素からなる整数DCT基底

を用いて、前記入力信号を直交変換することを特徴とする。
【0014】
さらに、本発明による請求項7の復号装置は、請求項1から6までのいずれか一項に記載の符号化装置により出力された符号化信号を入力し、前記符号化信号を逆量子化して逆直交変換し、復号信号を生成する復号装置において、整数精度の逆直交変換基底を用いて、前記逆量子化した信号を逆直交変換する逆直変換部を備え、前記逆直交変換部が、前記符号化装置の直交変換部にて用いる整数精度の直交変換基底の転置行列を、前記整数精度の逆直交変換基底として用いる、ことを特徴とする
【0015】
さらに、本発明による請求項8のプログラムは、コンピュータを、請求項1から6までのいずれか一項に記載の符号化装置として機能させることを特徴とする。
【0016】
また、本発明による請求項9のプログラムは、コンピュータを、請求項7に記載の復号装置として機能させることを特徴とする。
【発明の効果】
【0017】
以上のように、本発明によれば、基底ベクトルのノルムをできるだけ等しくすると共に、基底ベクトルの直交性を考慮した整数精度の直交変換基底または逆直交変換基底を用いることにより、変換精度を改善し、符号化効率を向上させることができる。
【図面の簡単な説明】
【0018】
【図1】本発明の実施形態による符号化装置の構成を示すブロック図である。
【図2】16×16要素からなる小数DCT基底を示す図である。
【図3】非特許文献1に記載された、16×16要素からなる整数DCT基底を示す図である。
【図4】図3に示した整数DCT基底の行列とその転置行列との演算結果を示す図である。
【図5】直交変換基底算出装置の構成を示すブロック図である。
【図6】本発明の実施形態にて用いる、16×16要素からなる整数DCT基底を示す図である。
【図7】図6に示した整数DCT基底の行列とその転置行列との演算結果を示す図である。
【図8】本発明の実施形態にて用いる、32×32要素からなる整数DCT基底を示す図である。
【図9】本発明の実施形態による復号装置の構成を示すブロック図である。
【図10】シミュレーション結果を説明する図である。
【発明を実施するための形態】
【0019】
以下、本発明を実施するための形態について図面を用いて詳細に説明する。本発明は、画像等の信号を符号化する符号化装置において、直交変換を整数精度で行う際に、基底ベクトルのノルムの大きさの統一性と基底ベクトルの直交性とを向上させた直交変換基底を用いることを特徴とする。また、画像等の信号を復号する復号装置において、逆直交変換を整数精度で行う際に、基底ベクトルのノルムの大きさの統一性と基底ベクトルの直交性とを向上させた逆直交変換基底を用いることを特徴とする。これにより、直交変換精度及び逆直交変換精度を改善し、符号化効率を向上させることができる。ここで、整数精度のDCTを行う場合の直交変換基底を整数DCT基底といい、整数精度のIDCT(Inverse Discrete Cosine Transform:逆離散コサイン変換)を行う場合の逆直交変換基底を整数IDCT基底という。
【0020】
〔符号化装置〕
まず、本発明の実施形態による符号化装置について説明する。図1は、本発明の実施形態による符号化装置の構成を示すブロック図である。この符号化装置11は、前処理部1、減算部2、直交変換部3、量子化部4、逆量子化部5、逆直交変換部6、加算部7、フレームメモリ8、信号予測部9及びエントロピー符号化部10を備えている。
【0021】
前処理部1は、符号化対象の信号を入力し、この入力信号に対し、符号化のために必要な所定の前処理を行う。前処理については既知であるから、ここでは説明を省略する。減算部2は、前処理部1から前処理後の信号を入力すると共に、後述する信号予測部9から予測信号を入力し、前処理後の信号から予測信号を減算し、差分信号を生成する。
【0022】
直交変換部3は、減算部2から減算結果の差分信号を入力し、図示しない記憶部に格納された所定の整数精度の直交変換基底を読み出して直交変換を行い、直交変換係数を生成する。直交変換の例として、整数DCTを行う。所定の整数精度の直交変換基底は、後述する直交変換基底算出装置20により算出され、符号化装置11の記憶部に予め格納されているものとする。直交変換基底算出装置20の処理、及び直交変換基底算出装置20により算出される整数精度の直交変換基底の詳細については後述する。
【0023】
量子化部4は、直交変換部3から直交変換係数を入力し、量子化を行う。逆量子化部5は、量子化部4から量子化した信号を入力し、逆量子化を行い、逆量子化した信号を逆直交変換部6に出力する。
【0024】
逆直交変換部6は、逆量子化部5から逆量子化された信号を入力し、図示しない記憶部に格納された所定の整数精度の逆直交変換基底を読み出して逆直交変換を行い、差分信号を再生する。逆直交変換の例として、整数精度のIDCTを行う。所定の整数精度の逆直交変換基底は、後述する直交変換基底算出装置20により算出され、符号化装置11の記憶部に予め格納されているものとする。直交変換基底算出装置20により算出される整数精度の逆直交変換基底の詳細については後述する。
【0025】
加算部7は、逆直交変換部6から逆直交変換係数を入力すると共に、後述する信号予測部9から予測信号を入力し、逆直交変換係数に予測信号を加算する。フレームメモリ8は、加算部7から加算結果の信号を入力し、復号信号として記憶する。フレームメモリ8に記憶された復号信号は、後述する信号予測部9により、予測信号を生成する際の参照信号として読み出される。
【0026】
信号予測部9は、フレームメモリ8から参照信号を読み出し、参照信号に基づいて、所定の予測方式により予測信号を生成し、減算部2及び加算部7に出力する。エントロピー符号化部10は、量子化部4から量子化した信号を入力し、エントロピー符号化し、符号化信号を出力する。この符号化信号は、後述する復号装置38へ出力される。
【0027】
〔直交変換基底の性質〕
次に、本発明の実施形態にて用いる整数DCT基底及び整数IDCT基底、並びにこれらを算出する直交変換基底算出装置20の説明に先立って、一般的な直交変換基底の性質について、小数精度のDCTを行う場合の直交変換基底(小数DCT基底)及び整数DCT基底を例に挙げて説明する。
【0028】
(小数DCT基底)
まず、小数DCT基底の性質について説明する。図2は、16×16要素からなる小数DCT基底(小数精度の正規直交変換基底)を示す図である。一般に、小数DCT基底の各基底ベクトルは、以下に示す(a)〜(c)の3つの性質を持つ。ここで、基底ベクトルとは、図2に示す16×16要素からなる小数DCT基底において、各行の要素からなるベクトルをいう。
【0029】
(a)正規性
第1に、小数DCT基底の各基底ベクトルは、正規性を持つ。すなわち、各基底ベクトルのノルム(基底ベクトルの要素の2乗和、または同じ基底ベクトル同士の内積)が1であるという性質を持つ。
【0030】
(b)直交性
第2に、小数DCT基底の各基底ベクトルは、直交性を持つ。すなわち、異なる基底ベクトル同士の内積が0であるという性質を持つ。図2に示した16×16要素からなる小数DCT基底の行列をDCT16とし、DCT16の転置行列をDCT16’とすると、前記(a)及び(b)の性質から、DCT16×DCT16’の演算結果(DCT16とDCT16’の積)は、16×16の単位行列となる。また、DCT16×DCT16’の演算結果におけるi行j列の要素は、第i行目の基底ベクトルと第j行目の基底ベクトルとの間の内積を示す。i=1,・・・16、j=1,・・・,16である。
【0031】
(c)対称性
第3に、小数DCT基底の各基底ベクトルは、奇数行の基底ベクトルが偶対称であり、偶数行の基底ベクトルが奇対称であるという性質を持つ。
【0032】
このように、小数DCT基底の各基底ベクトルは、前述の(a)〜(c)の性質を持つが、整数DCT基底の各基底ベクトルは、前述の(a)の性質を持たず、(b)及び(c)の性質を持つ。整数DCT基底の各基底ベクトルが(a)の性質を持たないのは、その要素が整数であり、基底ベクトルのノルムが1より大きくなってしまうからである。したがって、整数DCT基底の各基底ベクトルは、正規性の性質(a)の代わりに、各基底ベクトルのノルムがほぼ等しいという性質(a’)を持たせる。つまり、整数DCT基底の各基底ベクトルは、前述の(a’)(b)(c)の性質を持つことが望ましい。
【0033】
(整数DCT基底)
次に、整数DCT基底について説明する。図3は、非特許文献1に記載された、16×16要素からなる整数DCT基底を示す図である。図3に示す整数DCT基底は、図2に示した小数DCT基底の各要素を256倍して整数に丸めた後、第2行目〜第16行目の各基底ベクトルのノルムが第1行目の基底ベクトルのノルム65536(=256×256)に近くなるように各要素を操作し、偶数行の基底ベクトルの要素について|26|を|25|としたものである。
【0034】
図4は、図3に示した整数DCT基底の行列とその転置行列との演算結果を示す図であり、図4の行列は、図3に示した16×16要素からなる整数DCT基底の行列をTc16とし、Tc16の転置行列をTc16’とした場合の、Tc16×Tc16’の演算結果である。図4に示す行列におけるi行j列(i=1,2,・・・,16、j=1,2,・・・,16)の要素は、図3に示した整数DCT基底におけるi行の基底ベクトルとj行の基底ベクトルとの内積を示している。
【0035】
整数DCTの基底ベクトルが、理想的には(a’)(b)の性質を持つことからすると、Tc16×Tc16’の演算結果は、16×16の単位行列を65536倍したものとなるべきである。しかし、図4では、16×16の単位行列を65536倍したものになっていない。つまり、非特許文献1に記載された整数DCT基底(図3に示した整数DCT基底)の各基底ベクトルは、基底ベクトルのノルムの大きさの統一性((a')の性質)及び基底ベクトルの直交性((b)の性質)が十分でないことがわかる。図3に示した整数DCT基底を用いてDCTを行った場合には、整数DCT基底における(a’)(b)の性質が十分でないから、符号化効率が十分でない可能性がある。
【0036】
そこで、後述する直交変換基底算出装置は、基底ベクトルのノルムの大きさの統一性((a')の性質)及び基底ベクトルの直交性((b)の性質)をさらに向上させ、DCTと同様の対称性((c)の性質)を持つ整数DCT基底を算出する。そして、図1に示した直交変換部3は、直交変換基底算出装置により算出された整数DCT基底を用いて直交変換を行う。これにより、符号化効率を向上させることができる。逆直交変換を行う際に用いる整数IDCT基底についても同様である。
【0037】
〔直交変換基底算出装置〕
次に、基底ベクトルのノルムの大きさの統一性((a')の性質)及び基底ベクトルの直交性((b)の性質)をさらに向上させ、DCTと同様の対称性((c)の性質)を持つ整数DCT基底及び整数IDCT基底を算出する直交変換基底算出装置について説明する。図5は、直交変換基底算出装置の構成を示すブロック図である。この直交変換基底算出装置20は、整数化手段21、基底算出手段22及び転置算出手段23を備えている。整数化手段21は、小数DCT基底(例えば、16×16要素からなる小数DCT基底の場合を図2に示す。)を入力し、この小数DCT基底の各要素を所定倍(例えば256倍)して整数に丸め、整数丸め後のDCT基底を基底算出手段22に出力する。
【0038】
基底算出手段22は、整数化手段21から整数丸め後のDCT基底を入力し、整数丸め後のDCT基底の各要素を±n(nは1以上の整数)の範囲で操作し、基底ベクトルのノルムの大きさの統一性と基底ベクトルの直交性とを向上させるための数式(1)のコスト関数を用いて、コスト(cost)が最小になるように整数DCT基底の要素を求め、整数DCT基底を出力する。
(数1)
cost=a×Σ|基底ベクトルのノルム−理想のノルム|+Σ|異なる基底ベクトル同士の内積−0|
=a×Σ|基底ベクトル同士の内積−理想のノルム|+Σ|異なる基底ベクトル同士の内積| ・・・(1)
【0039】
前記数式(1)において、基底ベクトル同士の内積は、同じ基底ベクトルの内積を意味する。また、右辺の第1項は、基底ベクトルにおけるノルムの大きさの統一性の程度を示し、値が小さいほど統一性が実現されることになる((a’)の性質)。また、右辺の第2項は、基底ベクトルの直交性の程度を示し、値が小さいほど直交性が実現されることになる((b)の性質)。aは正数であり、N点の整数DCT基底を求める場合は、a=Nとするとよい。例えば、16×16要素からなる整数DCT基底を求める場合は、N=16である。
【0040】
このように、前記数式(1)において、a=Nとしてaを第1項の乗算係数とすることにより、第1項である基底ベクトルのノルムの大きさの統一性を、第2項である基底ベクトルの直交性よりも、要素数を示すNの大きさに比例して重視するようにした。画像の符号化においては、直交変換を行った後に量子化を行って変換係数の丸めが行われることを考えると、基底ベクトルの直交性よりもノルムの大きさの統一性の方が重要と考えられる。
【0041】
前記数式(1)を一般式で表すと以下のようになる。
(数1’)
cost=a×Σ|(xi,xi)−b|+Σ|(xi,xj)| ・・・(1’)
bは、整数化手段21において、小数DCT基底の各要素をc倍(c>1)して整数に丸める場合の、c×cである(b=c×c)。xi,xjは、基底算出手段22において、整数丸め後のDCT基底の各要素を±n(nは1以上の整数)の範囲で操作する際の各基底ベクトルであり、i=1,2,・・・,N、j=1,2,・・・,Nである。(xi,xi)は基底ベクトルxi及びxiの内積値を示し、(xi,xj)は基底ベクトルxi及びxj(i≠j)の内積値を示す。
【0042】
転置算出手段23は、基底算出手段22から整数DCT基底を入力し、整数DCT基底の行列の転置行列を求め、整数IDCT基底として出力する。基底算出手段22により出力された整数DCT基底、及び転置算出手段23により出力された整数IDCT基底は、図1に示した符号化装置11の記憶部に格納され、整数DCT基底が直交変換部3による直交変換のために用いられ、整数IDCT基底が逆直交変換部6による逆直交変換のために用いられる。また、転置算出手段23により出力された整数IDCT基底は、後述する図9に示す復号装置38の記憶部に格納され、逆直交変換部33よる逆直交変換のために用いられる。
【0043】
これにより、基底ベクトルのノルムの大きさの統一性と基底ベクトルの直交性とを向上させた整数DCT基底及び整数IDCT基底を算出することができ、符号化効率を向上させることができる。尚、整数DCT基底及び整数IDCT基底の各基底ベクトルが対称性の性質(c)を持つことから、前記数式(1’)の右辺第2項において、i<jとしてもよい。これにより、整数DCT基底及び整数IDCT基底を算出する際の計算量を減らすことができる。
【0044】
(偶数行の基底ベクトルのみを用いる場合)
以下、非特許文献1に記載された図3に示す16×16要素からなる整数DCT基底の改善を例に説明する。図3に示した整数DCT基底において、DCT基底と同様の対称性及び基底ベクトルの周期性を考慮すると、図4に示した演算結果の行列のように、奇数行偶数列及び偶数行奇数列、並びにi+j=18(=N+2、NはDCTの入力点数16)となるi行j列(i,jは偶数)の要素(内積値)は、常に0である。したがって、図5に示した直交変換基底算出装置20の基底算出手段22は、前記数式(1)(1’)のコストが最小になるように整数DCT基底の要素を求める際に、この部分(奇数行偶数列及び偶数行奇数列、並びにi+j=18(=N+2、NはDCTの入力点数16)となるi行j列(i,jは偶数)の要素)に対応する基底ベクトルの内積については、前記数式(1)(1’)の計算に含めないようにする。
【0045】
また、非特許文献1に記載された4×4〜32×32要素からなる整数DCT基底において(16×16要素からなる整数DCT基底は図3を参照)、2N×2N要素からなる整数DCT基底の奇数行は、N×N要素からなる整数DCT基底の第k行目(k=1〜N)を偶対称にして、2N×2N要素からなる整数DCT基底の第2k−1行目としたものであり、要素の値は決まっている。したがって、奇数行の基底ベクトル同士の内積は一定であるから、奇数行の基底ベクトル同士の内積演算を前記数式(1)(1’)から除外しても、コストが最小値になるように要素を求める際のコスト算出には影響しない。つまり、図5に示した直交変換基底算出装置20の基底算出手段22は、前記数式(1)(1’)のコストが最小になるように整数DCT基底の要素を求める際に、奇数行の基底ベクトル同士の内積についても、前記数式(1)(1’)の計算に含めないようにする。
【0046】
以上により、直交変換基底算出装置20の基底算出手段22は、前記数式(1)(1’)のコストが最小になるように整数DCT基底の要素を求める際に、前記数式(1)(1’)の内積計算において、偶数行の基底ベクトルの内積のみを計算すればよい。
【0047】
(第2行目の基底ベクトルを用いる場合)
また、DCT基底の周期性の性質を考慮すると、直交変換基底算出装置20の基底算出手段22は、図4に示した演算結果の行列において2行目の非0の要素に対応する基底ベクトルの内積についてのみ、前記数式(1)(1’)を計算すればよい。
【0048】
図3に示した整数DCT基底では、DCT基底の性質により、第2行目の基底ベクトルの各要素と、第4,6,・・・,16行目(第2行目以外の偶数行目)の基底ベクトルの各要素は、順番は異なるが同じ要素により構成されているから、偶数行目の各基底ベクトルのノルムの大きさ(各基底ベクトル同士の内積)は等しい。また、第2行目以外の偶数行目の各基底ベクトルは、第2行目の基底ベクトルの要素を所定の間隔おきにサンプリングしたものであるというDCT基底の性質により、第2行目の基底ベクトルと第4,6,・・・,16行目(第2行目以外の偶数行目)の基底ベクトルとの内積の絶対値和、第4行目の基底ベクトルと第2,6,8,・・・,16行目(第4行目以外の偶数行目)の基底ベクトルとの内積の絶対値和、第6行目の基底ベクトルと第2,4,8,・・・,16行目(第6行目以外の偶数行目)の基底ベクトルの内積との絶対値和、・・・、第16行目の基底ベクトルと第2,4,6,・・・,14行目(第16行目以外の偶数行目)の基底ベクトルとの内積の絶対値和は等しい。以上のことから、数式(1)(1’)において、第2行目の基底ベクトルと偶数行目の基底ベクトルの内積を計算することとし、数式(1’)において、i=2とすればよい。
【0049】
したがって、図5に示した直交変換基底算出装置20の基底算出手段22は、整数化手段21から整数丸め後のDCT基底を入力し、整数丸め後のDCT基底の各要素を±n(nは1以上の整数)の範囲で操作しながら、以下の数式(2)を用いて、コストが最小になるように第2行目の基底ベクトルの要素を求め、この第2行目の基底ベクトルの要素及びDCTの性質に基づいて第2行目以外の偶数行の基底ベクトルの要素を求め、整数DCT基底を出力する。第2行目の基底ベクトルの要素が決定すれば、DCTの性質から、第2行目以外の偶数行の基底ベクトルの要素が一義的に決定される。また、本実施形態の前提より、奇数行の基底ベクトルは既知である。
(数2)
cost=16×|(x2,x2)−64^2×16|
+|(x2,x4)|+|(x2, x6)|+|(x2, x8)|
+|(x2,x10)|+|(x2,x12)|+|(x2,x14)| ・・・(2)
x1,x2,・・・,x16は、求める整数DCT基底の第1行目、第2行目、・・・、第16行目の基底ベクトルを示し、(A,B)はベクトルA及びBの内積値を示す。
【0050】
前記数式(2)のコスト関数を最小化する第2行目の基底ベクトルは、整数に丸めた値±1の範囲で求めると、以下のとおりになる。
[91, 87, 79, 70, 56, 43, 27, 8, -8, -27, -43, -56, -70, -79, -87, -91]
【0051】
(基底ベクトルの前半の要素のみを用いる場合)
さらに、前記数式(2)を用いてコストを計算する際には、図3に示した整数DCT基底の対称性の性質を考慮すると、基底ベクトルの前半の8個目の要素までの内積をそれぞれ計算すればよい。これは、偶数行の基底ベクトルが奇対称であり、要素数が2Mの奇対称のベクトルをo1,o2とすると、o1,o2の内積は、o1,o2の前半のM個目までの要素の内積の2倍になるからである。これにより、計算量を減らすことができる。
【0052】
以下、具体的に説明する。直交変換基底算出装置20の基底算出手段22は、整数化手段21から整数丸め後のDCT基底を入力し、前記数式(2)を用いて、コストが最小になるように整数DCT基底の要素を求める際に、第2行目の基底ベクトルx2における前半8個の要素x2[0],x2[1],・・・,x2[7]に基づいて、第4,6,・・・,14行目の基底ベクトルx4,x6,・・・,x14における前半8個の要素をそれぞれ求め、x2[0],x2[1],・・・,x2[7]の値を所定の範囲(±1の範囲)で操作しながら、基底ベクトルの前半8個の要素による前記数式(2)のコストの最小値を求め、整数DCT基底を求める。
【0053】
すなわち、基底算出手段22は、ステップ1の処理として、第2行目の基底ベクトルx2における前半8個の要素x2[0],x2[1],・・・,x2[7]から、第4行目の基底ベクトルx4における前半8個の要素x4[0],x4[1],・・・,x4[7]、第6行目の基底ベクトルx6における前半8個の要素x6[0],x6[1],・・・,x6[7]、・・・、第14行目の基底ベクトルx14における前半8個の要素x14[0],x14[1],・・・,x14[7]を求める。そして、基底算出手段22は、ステップ2の処理として、第2行目の基底ベクトルx2における前半8個の要素x2[0],x2[1],・・・,x2[7]、及びステップ1の処理にて求めた第4,6,・・・,14行目の基底ベクトルにおける前半8個の要素から両ベクトルの内積を計算し、基底ベクトルの前半8個の要素による前記数式(2)のコストを求める。そして、コストが最小値となる整数DCT基底の要素を求める。
【0054】
ステップ1の処理として、以下のステップ1−1〜ステップ1−6が行われる。
ステップ1−1は、第4行目の基底ベクトルx4の前半8個の要素x4[0]〜x4[7]を求める処理である。
x4[ 0] = x2[ 1];
x4[ 1] = x2[ 4];
x4[ 2] = x2[ 7];
x4[ 3] =-x2[ 5];
x4[ 4] =-x2[ 2];
x4[ 5] =-x2[ 0];
x4[ 6] =-x2[ 3];
x4[ 7] =-x2[ 6];
ステップ1−2は、第6行目の基底ベクトルx6の前半8個の要素x6[0]〜x6[7]を求める処理である。
x6[ 0] = x2[ 2];
x6[ 1] = x2[ 7];
x6[ 2] =-x2[ 3];
x6[ 3] =-x2[ 1];
x6[ 4] =-x2[ 6];
x6[ 5] = x2[ 4];
x6[ 6] = x2[ 0];
x6[ 7] = x2[ 5];
ステップ1−3は、第8行目の基底ベクトルx8の前半8個の要素x8[0]〜x8[7]を求める処理である。
x8[ 0] = x2[ 3];
x8[ 1] =-x2[ 5];
x8[ 2] =-x2[ 1];
x8[ 3] = x2[ 7];
x8[ 4] = x2[ 0];
x8[ 5] = x2[ 6];
x8[ 6] =-x2[ 2];
x8[ 7] =-x2[ 4];
【0055】
ステップ1−4は、第10行目の基底ベクトルx10の前半8個の要素x10[0]〜x10[7]を求める処理である。
x10[ 0] = x2[ 4];
x10[ 1] =-x2[ 2];
x10[ 2] =-x2[ 6];
x10[ 3] = x2[ 0];
x10[ 4] =-x2[ 7];
x10[ 5] =-x2[ 1];
x10[ 6] = x2[ 5];
x10[ 7] = x2[ 3];
ステップ1−5は、第12行目の基底ベクトルx12の前半8個の要素x12[0]〜x12[7]を求める処理である。
x12[ 0] = x2[ 5];
x12[ 1] =-x2[ 0];
x12[ 2] = x2[ 4];
x12[ 3] = x2[ 6];
x12[ 4] =-x2[ 1];
x12[ 5] = x2[ 3];
x12[ 6] = x2[ 7];
x12[ 7] =-x2[ 2];
ステップ1−6は、第14行目の基底ベクトルx14の前半8個の要素x14[0]〜x14[7]を求める処理である。
x14[ 0] = x2[ 6];
x14[ 1] =-x2[ 3];
x14[ 2] = x2[ 0];
x14[ 3] =-x2[ 2];
x14[ 4] = x2[ 5];
x14[ 5] = x2[ 7];
x14[ 6] =-x2[ 4];
x14[ 7] = x2[ 1];
【0056】
ステップ2の処理として、ノルムの大きさを揃えるための項と、直交性を高めるための項(異なる基底ベクトルの内積を求めるための項)とが加算され、コストを求める処理が行われる。
cost = 0;//初期化
cost += 16×abs(InnerProduct(x2, x2, 8)-64×64×8);//ノルムの大きさを揃える
cost += abs(InnerProduct(x2, x4, 8));//異なる基底ベクトルの内積を求める(以下同じ)
cost += abs(InnerProduct(x2, x6, 8));
cost += abs(InnerProduct(x2, x8, 8));
cost += abs(InnerProduct(x2, x10, 8));
cost += abs(InnerProduct(x2, x12, 8));
cost += abs(InnerProduct(x2, x14, 8));
ここで、関数absは、絶対値をとることを示し、関数InnerProductは、InnerProduct(A0, A1, m)で、A0及びA1の配列において、m番目の要素までの内積を行うことを示す。
【0057】
ここで、16×16要素からなる整数DCT基底の基底ベクトルは要素の数が16個であるから、ノルムの大きさは、64×64×16=65536に近づけるようにするが、ここでは基底ベクトルの前半8個の要素を用いて計算するから、ノルムの大きさは、64×64×8=32768に近づけるようする。このように、基底ベクトルの前半の要素のみを用いて整数DCT基底を求める場合、16個の要素のベクトルの内積演算を8個の要素のベクトルの内積演算にすることができるから、和と積の計算回数を半分にし、計算量を削減することができる。この結果をもとに、奇対称性と、第2行目の基底ベクトルの要素と他の偶数行の基底ベクトルの要素の関係とから、偶数行の基底ベクトルを求め、既知の奇数行の基底ベクトルを組み合わせることにより、図6の16×16要素からなる整数DCT基底を求めることができた。
【0058】
図6は、本発明の実施形態にて用いる、16×16要素からなる整数DCT基底を示す図であり、図5に示した直交変換基底算出装置20の基底算出手段22により前記数式(1)等を用いて算出され出力される整数DCT基底を示す。尚、直交変換基底算出装置20の転置算出手段23により算出され出力される16×16要素の整数IDCT基底は、図6に示した整数DCT基底の行列の転置行列である。
【0059】
図7は、図6に示した整数DCT基底の行列とその転置行列との演算結果を示す図であり、図7の行列は、図6に示した16×16要素からなる整数DCT基底の行列をTn16とし、Tn16の転置行列をTn16’とした場合の、Tn16×Tn16’の演算結果である。図7の行列におけるi行j列(i=1,2,・・・,16、j=1,2,・・・,16)の要素は、図6に示した整数DCT基底におけるi行の基底ベクトルとj行の基底ベクトルとの内積を示している。図7の各要素と、図4の各要素とを比較すると、図7の方が、対角成分の要素値が理想のノルム値である65536に近くなっており、対角成分以外の要素値が0に近くなっている。つまり、図7の行列の方が図4よりも、16×16の単位行列を65536倍した理想的な値に近づいている。したがって、図6に示した本発明の実施形態に用いる整数DCT基底の方が、図3に示した非特許文献1の整数DCT基底よりも、基底ベクトルのノルムの大きさの統一性((a')の性質)及び基底ベクトルの直交性((b)の性質)がさらに向上しているといえる
【0060】
図8は、本発明の実施形態にて用いる、32×32要素からなる整数DCT基底を示す図であり、図6に示した16×16要素からなる整数DCT基底と同様に、図5に示した直交変換基底算出装置20の基底算出手段22により前記数式(1)等を用いて算出され出力される整数DCT基底を示す。尚、直交変換基底算出装置20の転置算出手段23により算出され出力される32×32要素からなる整数IDCT基底は、図8に示した整数DCT基底の行列の転置行列である。
【0061】
〔復号装置〕
次に、本発明の実施形態による復号装置について説明する。図9は、本発明の実施形態による復号装置の構成を示すブロック図である。この復号装置38は、エントロピー復号部31、逆量子化部32、逆直交変換部33、加算部34、後処理部35、フレームメモリ36及び信号予測部37を備えている。
【0062】
エントロピー復号部31は、図1に示した符号化装置11により出力された符号化信号を入力し、図1に示したエントロピー符号化部10のエントロピー符号化に対応するエントロピー復号を行う。エントロピー復号の処理については既知であるから、ここでは説明を省略する。逆量子化部32は、エントロピー復号部31によりエントロピー復号された信号を入力し、図1に示した逆量子化部5と同様に、逆量子化を行い、逆量子化した信号を逆直交変換部33に出力する。
【0063】
逆直交変換部33は、逆量子化部32から逆量子化された信号を入力し、図1に示した逆直交変換部6と同様に、図示しない記憶部から所定の整数精度の逆直交変換基底を読み出して逆直交変換を行う。所定の整数精度の逆直交変換基底は、前述の直交変換基底算出装置20により算出され、復号装置38の記憶部に予め格納されているものとする。
【0064】
加算部34は、逆直交変換部33からの信号を入力すると共に、後述する信号予測部37から予測信号を入力し、両信号を加算する。後処理部35は、加算部34から加算結果の信号である復号信号を入力し、この復号信号に対し、図1に示した前処理部1の前処理に対応する所定の後処理を行い、出力信号として出力する。後処理については既知であるから、ここでは説明を省略する。
【0065】
フレームメモリ36は、加算部34から加算結果の信号を入力し、復号信号として記憶する。フレームメモリ36に記憶された復号信号は、後述する信号予測部37により、予測信号を生成する際の参照信号として読み出される。信号予測部37は、フレームメモリ36から参照信号を読み出し、参照信号に基づいて、所定の予測方式により予測信号を生成し、加算部34に出力する。
【0066】
〔実験結果〕
次に、本発明の実施形態による16×16要素及び32×32要素からなる整数DCT基底を用いた符号化処理と、非特許文献1による整数DCT基底を用いた符号化処理との実験結果(コンピュータによるシミュレーション結果)について説明する。図10は、そのシミュレーション結果のBDレートを示す図である。図10のBDレートは、量子化のQPレンジをQP=1,5,9,13とした場合の輝度(Y成分)のBDビットレート(符号量削減率)を示し、非特許文献1における符号量に対する本発明の実施形態における符号量の割合を示す。BDレートは、負の値が大きいほど、本発明の実施形態の方が非特許文献1よりも符号化効率が良いことになる。「Sequence」の欄において「Traffic」「PeopleOnStreet」等は、符号化実験を行ったテスト動画像の名称を示し、「IntraHE」「IntraLC」は、信号予測の種類を示す。「Intra」は、画面内予測のみを用いた条件であり、「HE」は、High Efficiencyの略であり、計算量は大きいが、符号化性能が向上するツールを集めた条件である。「LC」は、Low Complexityの略であり、符号化性能は「HE」よりも低いが、計算量が少ないツールを集めた条件である。図10に示すシミュレーション結果によれば、最終行の「Average」から、信号予測が「IntraHE」の条件の場合、BDレートは−0.13であり、信号予測が「IntraLC」の条件の場合、BDレートは−0.17である。また、個々のシーケンスにおいてもほとんどのBDレートは負の値であり、最大1.23%のゲインが得られている。これにより、本発明の実施形態による整数DCTを用いた方が非特許文献1による整数DCTを用いるよりも、基底ベクトルのノルムの大きさの統一性及び基底ベクトルの直交性が改善されたため、符号化効率が良くなっていることがわかる。
【0067】
以上のように、本発明の実施形態による符号化装置11によれば、直交変換基底算出装置20により算出された、基底ベクトルのノルムの大きさの統一性と基底ベクトルの直交性とがさらに向上した整数DCT基底を用いてDCTを行い、この整数DCT基底の転置行列を整数IDCT基底としてIDCTを行い、符号化を行うようにした。また、本発明の実施形態による復号装置38によれば、直交変換基底算出装置20により算出された、基底ベクトルのノルムの大きさの統一性と基底ベクトルの直交性とがさらに向上した整数DCT基底の転置行列を整数IDCT基底として用い、IDCTを行い、復号を行うようにした。これにより、直交変換精度及び逆直交変換精度を改善することができ、符号化効率を向上させることができる。
【0068】
尚、本発明の実施形態による符号化装置11、復号装置38及び直交変換基底算出装置20のハードウェア構成としては、通常のコンピュータを使用することができる。この符号化装置11、復号装置38及び直交変換基底算出装置20は、CPU、RAM等の揮発性の記憶媒体、ROM等の不揮発性の記憶媒体、及びインターフェース等を備えたコンピュータによって構成される。符号化装置11に備えた前処理部1、減算部2、直交変換部3、量子化部4、逆量子化部5、逆直交変換部6、加算部7、フレームメモリ8、信号予測部9及びエントロピー符号化部10の各機能は、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。同様に、復号装置38に備えたエントロピー復号部31、逆量子化部32、逆直交変換部33、加算部34、後処理部35、フレームメモリ36及び信号予測部37の各機能も、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。また、直交変換基底算出装置20に備えた整数化手段21、基底算出手段22及び転置算出手段23の各機能も、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。これらのプログラムは、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスク等)、光ディスク(CD−ROM、DVD等)、半導体メモリ等の記憶媒体に格納して頒布することもできる。
【0069】
以上、実施形態を挙げて本発明を説明したが、本発明は前記実施形態に限定されるものではなく、その技術思想を逸脱しない範囲で種々変形可能である。例えば、前記実施形態において、直交変換基底算出装置20の基底算出手段22により前記数式(1)等のコストを最小化するための探索範囲(操作範囲±n)は、±1以外でもよい。但し、ここで求める整数DCT基底は、DCTに基づくものであり、各基底ベクトルはコサインカーブを示すものであるから、整数DCT基底の要素の大小関係は、要素が操作される前と同じにすることが望ましい。また、前記実施形態では、直交変換をDCTとしたが、DST(Discrete Sine Transform:離散サイン変換)またはKLT(Karhunen Loeve Transform:カルーネンレーブ変換)としてもよい。この場合、DCTと同様に、各正規直交変換基底の要素を所定倍して整数に丸め、数式(1)(1’)等によって整数精度の変換基底を求めることとする。また、前記実施形態では、16×16要素の変換基底、32×32要素の変換基底を例としたが、その他の数の要素の変換基底、例えば、4×4、8×8、64×64等としてもよい。また、上記実施形態では画像信号を対象にして説明したが、本発明の符号化装置、復号装置及びプログラムは、入力が画像信号に限定されることはない。
【符号の説明】
【0070】
1 前処理部
2 減算部
3 直交変換部
4 量子化部
5 逆量子化部
6 逆直交変換部
7 加算部
8 フレームメモリ
9 信号予測部
10 エントロピー符号化部
11 符号化装置
20 直交変換基底算出装置
21 整数化手段
22 基底算出手段
23 転置算出手段
31 エントロピー復号部
32 逆量子化部
33 逆直交変換部
34 加算部
35 後処理部
36 フレームメモリ
37 信号予測部
38 復号装置

【特許請求の範囲】
【請求項1】
入力信号を直交変換して直交変換係数を生成し、前記直交変換係数を量子化して符号化信号を出力する符号化装置において、
N点(Nは1以上の整数)の整数精度の直交変換基底を用いて、前記入力信号を直交変換する直交変換部を備え、
前記直交変換部は、
所定の小数精度の正規直交変換基底の各要素をc倍(c>1)して得られた整数の基底に対し、前記整数の基底の各要素を±n(nは1以上の整数)の範囲で操作したときの基底ベクトルをx1,x2,・・・,xNとし、aを所定の正数とし、各基底ベクトルにおける理想のノルムの値をb=c×cとし、i=1,2,・・・,N、j=1,2,・・・,N、i<jとし、(A,B)をベクトルA及びBの内積値とする場合、以下の数式
cost=a×Σ|(xi,xi)−b|+Σ|(xi,xj)|
により、前記コスト(cost)を最小とする各基底ベクトルの要素を、前記整数精度の直交変換基底として用いる、ことを特徴とする符号化装置。
【請求項2】
請求項1に記載の符号化装置において、
aをNとすることを特徴とする符号化装置。
【請求項3】
請求項1または2に記載の符号化装置において、
iを2とし、jを2以外の偶数値とすることを特徴とする符号化装置。
【請求項4】
請求項3に記載の符号化装置において、
前記基底ベクトルxi,xjが、第1番目から数えて複数個の要素から構成される場合、前記数式の内積演算は、前記複数個の要素のうち、第1番目から複数個の半分までの要素から構成されるベクトルxi’,xj’にて行われる、ことを特徴とする符号化装置。
【請求項5】
請求項1から4までのいずれか一項に記載の符号化装置において、
前記直交変換部は、以下の16×16要素からなる整数DCT基底

を用いて、前記入力信号を直交変換することを特徴とする符号化装置。
【請求項6】
請求項1から4までのいずれか一項に記載の符号化装置において、
前記直交変換部は、以下の32×32要素からなる整数DCT基底

を用いて、前記入力信号を直交変換することを特徴とする符号化装置。
【請求項7】
請求項1から6までのいずれか一項に記載の符号化装置により出力された符号化信号を入力し、前記符号化信号を逆量子化して逆直交変換し、復号信号を生成する復号装置において、
整数精度の逆直交変換基底を用いて、前記逆量子化した信号を逆直交変換する逆直変換部を備え、
前記逆直交変換部は、前記符号化装置の直交変換部にて用いる整数精度の直交変換基底の転置行列を、前記整数精度の逆直交変換基底として用いる、ことを特徴とする復号装置。
【請求項8】
コンピュータを、請求項1から6までのいずれか一項に記載の符号化装置として機能させるためのプログラム。
【請求項9】
コンピュータを、請求項7に記載の復号装置として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2013−16972(P2013−16972A)
【公開日】平成25年1月24日(2013.1.24)
【国際特許分類】
【出願番号】特願2011−147346(P2011−147346)
【出願日】平成23年7月1日(2011.7.1)
【出願人】(000004352)日本放送協会 (2,206)
【Fターム(参考)】