JP5662887B2 - 符号化装置、復号装置及びプログラム - Google Patents

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

Info

Publication number
JP5662887B2
JP5662887B2 JP2011147346A JP2011147346A JP5662887B2 JP 5662887 B2 JP5662887 B2 JP 5662887B2 JP 2011147346 A JP2011147346 A JP 2011147346A JP 2011147346 A JP2011147346 A JP 2011147346A JP 5662887 B2 JP5662887 B2 JP 5662887B2
Authority
JP
Japan
Prior art keywords
base
integer
orthogonal transform
encoding
basis
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011147346A
Other languages
English (en)
Other versions
JP2013016972A (ja
Inventor
泰子 杉藤
泰子 杉藤
市ヶ谷 敦郎
敦郎 市ヶ谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Japan Broadcasting Corp
Original Assignee
Japan Broadcasting Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Japan Broadcasting Corp filed Critical Japan Broadcasting Corp
Priority to JP2011147346A priority Critical patent/JP5662887B2/ja
Publication of JP2013016972A publication Critical patent/JP2013016972A/ja
Application granted granted Critical
Publication of JP5662887B2 publication Critical patent/JP5662887B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

本発明は、画像等の信号を符号化する直交変換技術に関し、特に、整数精度の直交変換を行う符号化装置、復号装置及びプログラムに関する。
従来、放送や動画像の配信等のシステムに用いられる映像符号化方式として、AVC/H.264の標準規格が知られている。この映像符号化方式では、画面内予測や動き補償予測を行い、予測画像と入力画像との間の差分信号に対して、4×4画素、8×8画素等の2次元ブロック毎に直交変換及び量子化を行い、エントロピー符号化を行うことにより、信号圧縮を実現する。2次元ブロックの直交変換には、復号側でミスマッチが起こらないように、整数精度のDCT(Discrete Cosine Transform:離散コサイン変換)が用いられる。以下、整数精度のDCTを整数DCTという。
整数精度の直交変換基底としては、AVC/H.264の標準規格で用いられている整数DCTの直交変換基底の他に、特許文献1、非特許文献1に記載のものが知られている。特許文献1には、小数精度の直交変換基底をスカラー倍して最も近い整数に丸め、基底ベクトルのノルム(要素の2乗和)が誤差1%以内になるように基底ベクトルの要素を操作し、基底ベクトルの各要素が32未満のものを直交変換基底として使用する技術が記載されている。また、非特許文献1には、特許文献1と同様に、整数DCTの基底ベクトルのノルムができるだけ等しくなるように基底ベクトルの要素を操作して得られる、統一的な4×4、8×8、16×16、32×32要素からなる直交変換基底が記載されている。
特表2011−504000号公報
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
前述の特許文献1または非特許文献1に記載された整数DCTの直交変換基底を用いることにより、AVC/H.264の標準規格による整数DCTの直交変換基底に比べ、精度良く整数変換を行うことができる。しかし、この整数精度の直交変換基底を算出する過程で基底ベクトルの要素を操作する際に、基底ベクトルの直交性を考慮しておらず、特に、16×16、32×32等の大きいブロックの変換を行う際に、精度が悪くなるという問題があった。これは、符号化装置において整数精度の直交変換を行う場合のみならず、復号装置において整数精度の逆直交変換を行う場合も同様である。
そこで、本発明は前記課題を解決するためになされたものであり、その目的は、直交変換または逆直交変換を整数精度で行う際に、基底ベクトルのノルムをできるだけ等しくすると共に、基底ベクトルの直交性を考慮した基底を用いることにより、符号化効率の改善を可能にした符号化装置、復号装置及びプログラムを提供することにある。
前記目的を達成するために、本発明による請求項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基底
Figure 0005662887
を用いて、前記入力信号を直交変換することを特徴とする。
また、本発明による請求項6の符号化装置は、請求項1から4までのいずれか一項に記載の符号化装置において、前記直交変換部が、以下の32×32要素からなる整数DCT基底
Figure 0005662887
を用いて、前記入力信号を直交変換することを特徴とする。
さらに、本発明による請求項7の復号装置は、請求項1から6までのいずれか一項に記載の符号化装置により出力された符号化信号を入力し、前記符号化信号を逆量子化して逆直交変換し、復号信号を生成する復号装置において、整数精度の逆直交変換基底を用いて、前記逆量子化した信号を逆直交変換する逆直変換部を備え、前記逆直交変換部が、前記符号化装置の直交変換部にて用いる整数精度の直交変換基底の転置行列を、前記整数精度の逆直交変換基底として用いる、ことを特徴とする
さらに、本発明による請求項8のプログラムは、コンピュータを、請求項1から6までのいずれか一項に記載の符号化装置として機能させることを特徴とする。
また、本発明による請求項9のプログラムは、コンピュータを、請求項7に記載の復号装置として機能させることを特徴とする。
以上のように、本発明によれば、基底ベクトルのノルムをできるだけ等しくすると共に、基底ベクトルの直交性を考慮した整数精度の直交変換基底または逆直交変換基底を用いることにより、変換精度を改善し、符号化効率を向上させることができる。
本発明の実施形態による符号化装置の構成を示すブロック図である。 16×16要素からなる小数DCT基底を示す図である。 非特許文献1に記載された、16×16要素からなる整数DCT基底を示す図である。 図3に示した整数DCT基底の行列とその転置行列との演算結果を示す図である。 直交変換基底算出装置の構成を示すブロック図である。 本発明の実施形態にて用いる、16×16要素からなる整数DCT基底を示す図である。 図6に示した整数DCT基底の行列とその転置行列との演算結果を示す図である。 本発明の実施形態にて用いる、32×32要素からなる整数DCT基底を示す図である。 本発明の実施形態による復号装置の構成を示すブロック図である。 シミュレーション結果を説明する図である。
以下、本発明を実施するための形態について図面を用いて詳細に説明する。本発明は、画像等の信号を符号化する符号化装置において、直交変換を整数精度で行う際に、基底ベクトルのノルムの大きさの統一性と基底ベクトルの直交性とを向上させた直交変換基底を用いることを特徴とする。また、画像等の信号を復号する復号装置において、逆直交変換を整数精度で行う際に、基底ベクトルのノルムの大きさの統一性と基底ベクトルの直交性とを向上させた逆直交変換基底を用いることを特徴とする。これにより、直交変換精度及び逆直交変換精度を改善し、符号化効率を向上させることができる。ここで、整数精度のDCTを行う場合の直交変換基底を整数DCT基底といい、整数精度のIDCT(Inverse Discrete Cosine Transform:逆離散コサイン変換)を行う場合の逆直交変換基底を整数IDCT基底という。
〔符号化装置〕
まず、本発明の実施形態による符号化装置について説明する。図1は、本発明の実施形態による符号化装置の構成を示すブロック図である。この符号化装置11は、前処理部1、減算部2、直交変換部3、量子化部4、逆量子化部5、逆直交変換部6、加算部7、フレームメモリ8、信号予測部9及びエントロピー符号化部10を備えている。
前処理部1は、符号化対象の信号を入力し、この入力信号に対し、符号化のために必要な所定の前処理を行う。前処理については既知であるから、ここでは説明を省略する。減算部2は、前処理部1から前処理後の信号を入力すると共に、後述する信号予測部9から予測信号を入力し、前処理後の信号から予測信号を減算し、差分信号を生成する。
直交変換部3は、減算部2から減算結果の差分信号を入力し、図示しない記憶部に格納された所定の整数精度の直交変換基底を読み出して直交変換を行い、直交変換係数を生成する。直交変換の例として、整数DCTを行う。所定の整数精度の直交変換基底は、後述する直交変換基底算出装置20により算出され、符号化装置11の記憶部に予め格納されているものとする。直交変換基底算出装置20の処理、及び直交変換基底算出装置20により算出される整数精度の直交変換基底の詳細については後述する。
量子化部4は、直交変換部3から直交変換係数を入力し、量子化を行う。逆量子化部5は、量子化部4から量子化した信号を入力し、逆量子化を行い、逆量子化した信号を逆直交変換部6に出力する。
逆直交変換部6は、逆量子化部5から逆量子化された信号を入力し、図示しない記憶部に格納された所定の整数精度の逆直交変換基底を読み出して逆直交変換を行い、差分信号を再生する。逆直交変換の例として、整数精度のIDCTを行う。所定の整数精度の逆直交変換基底は、後述する直交変換基底算出装置20により算出され、符号化装置11の記憶部に予め格納されているものとする。直交変換基底算出装置20により算出される整数精度の逆直交変換基底の詳細については後述する。
加算部7は、逆直交変換部6から逆直交変換係数を入力すると共に、後述する信号予測部9から予測信号を入力し、逆直交変換係数に予測信号を加算する。フレームメモリ8は、加算部7から加算結果の信号を入力し、復号信号として記憶する。フレームメモリ8に記憶された復号信号は、後述する信号予測部9により、予測信号を生成する際の参照信号として読み出される。
信号予測部9は、フレームメモリ8から参照信号を読み出し、参照信号に基づいて、所定の予測方式により予測信号を生成し、減算部2及び加算部7に出力する。エントロピー符号化部10は、量子化部4から量子化した信号を入力し、エントロピー符号化し、符号化信号を出力する。この符号化信号は、後述する復号装置38へ出力される。
〔直交変換基底の性質〕
次に、本発明の実施形態にて用いる整数DCT基底及び整数IDCT基底、並びにこれらを算出する直交変換基底算出装置20の説明に先立って、一般的な直交変換基底の性質について、小数精度のDCTを行う場合の直交変換基底(小数DCT基底)及び整数DCT基底を例に挙げて説明する。
(小数DCT基底)
まず、小数DCT基底の性質について説明する。図2は、16×16要素からなる小数DCT基底(小数精度の正規直交変換基底)を示す図である。一般に、小数DCT基底の各基底ベクトルは、以下に示す(a)〜(c)の3つの性質を持つ。ここで、基底ベクトルとは、図2に示す16×16要素からなる小数DCT基底において、各行の要素からなるベクトルをいう。
(a)正規性
第1に、小数DCT基底の各基底ベクトルは、正規性を持つ。すなわち、各基底ベクトルのノルム(基底ベクトルの要素の2乗和、または同じ基底ベクトル同士の内積)が1であるという性質を持つ。
(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である。
(c)対称性
第3に、小数DCT基底の各基底ベクトルは、奇数行の基底ベクトルが偶対称であり、偶数行の基底ベクトルが奇対称であるという性質を持つ。
このように、小数DCT基底の各基底ベクトルは、前述の(a)〜(c)の性質を持つが、整数DCT基底の各基底ベクトルは、前述の(a)の性質を持たず、(b)及び(c)の性質を持つ。整数DCT基底の各基底ベクトルが(a)の性質を持たないのは、その要素が整数であり、基底ベクトルのノルムが1より大きくなってしまうからである。したがって、整数DCT基底の各基底ベクトルは、正規性の性質(a)の代わりに、各基底ベクトルのノルムがほぼ等しいという性質(a’)を持たせる。つまり、整数DCT基底の各基底ベクトルは、前述の(a’)(b)(c)の性質を持つことが望ましい。
(整数DCT基底)
次に、整数DCT基底について説明する。図3は、非特許文献1に記載された、16×16要素からなる整数DCT基底を示す図である。図3に示す整数DCT基底は、図2に示した小数DCT基底の各要素を256倍して整数に丸めた後、第2行目〜第16行目の各基底ベクトルのノルムが第1行目の基底ベクトルのノルム65536(=256×256)に近くなるように各要素を操作し、偶数行の基底ベクトルの要素について|26|を|25|としたものである。
図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行の基底ベクトルとの内積を示している。
整数DCTの基底ベクトルが、理想的には(a’)(b)の性質を持つことからすると、Tc16×Tc16’の演算結果は、16×16の単位行列を65536倍したものとなるべきである。しかし、図4では、16×16の単位行列を65536倍したものになっていない。つまり、非特許文献1に記載された整数DCT基底(図3に示した整数DCT基底)の各基底ベクトルは、基底ベクトルのノルムの大きさの統一性((a')の性質)及び基底ベクトルの直交性((b)の性質)が十分でないことがわかる。図3に示した整数DCT基底を用いてDCTを行った場合には、整数DCT基底における(a’)(b)の性質が十分でないから、符号化効率が十分でない可能性がある。
そこで、後述する直交変換基底算出装置は、基底ベクトルのノルムの大きさの統一性((a')の性質)及び基底ベクトルの直交性((b)の性質)をさらに向上させ、DCTと同様の対称性((c)の性質)を持つ整数DCT基底を算出する。そして、図1に示した直交変換部3は、直交変換基底算出装置により算出された整数DCT基底を用いて直交変換を行う。これにより、符号化効率を向上させることができる。逆直交変換を行う際に用いる整数IDCT基底についても同様である。
〔直交変換基底算出装置〕
次に、基底ベクトルのノルムの大きさの統一性((a')の性質)及び基底ベクトルの直交性((b)の性質)をさらに向上させ、DCTと同様の対称性((c)の性質)を持つ整数DCT基底及び整数IDCT基底を算出する直交変換基底算出装置について説明する。図5は、直交変換基底算出装置の構成を示すブロック図である。この直交変換基底算出装置20は、整数化手段21、基底算出手段22及び転置算出手段23を備えている。整数化手段21は、小数DCT基底(例えば、16×16要素からなる小数DCT基底の場合を図2に示す。)を入力し、この小数DCT基底の各要素を所定倍(例えば256倍)して整数に丸め、整数丸め後のDCT基底を基底算出手段22に出力する。
基底算出手段22は、整数化手段21から整数丸め後のDCT基底を入力し、整数丸め後のDCT基底の各要素を±n(nは1以上の整数)の範囲で操作し、基底ベクトルのノルムの大きさの統一性と基底ベクトルの直交性とを向上させるための数式(1)のコスト関数を用いて、コスト(cost)が最小になるように整数DCT基底の要素を求め、整数DCT基底を出力する。
(数1)
cost=a×Σ|基底ベクトルのノルム−理想のノルム|+Σ|異なる基底ベクトル同士の内積−0|
=a×Σ|基底ベクトル同士の内積−理想のノルム|+Σ|異なる基底ベクトル同士の内積| ・・・(1)
前記数式(1)において、基底ベクトル同士の内積は、同じ基底ベクトルの内積を意味する。また、右辺の第1項は、基底ベクトルにおけるノルムの大きさの統一性の程度を示し、値が小さいほど統一性が実現されることになる((a’)の性質)。また、右辺の第2項は、基底ベクトルの直交性の程度を示し、値が小さいほど直交性が実現されることになる((b)の性質)。aは正数であり、N点の整数DCT基底を求める場合は、a=Nとするとよい。例えば、16×16要素からなる整数DCT基底を求める場合は、N=16である。
このように、前記数式(1)において、a=Nとしてaを第1項の乗算係数とすることにより、第1項である基底ベクトルのノルムの大きさの統一性を、第2項である基底ベクトルの直交性よりも、要素数を示すNの大きさに比例して重視するようにした。画像の符号化においては、直交変換を行った後に量子化を行って変換係数の丸めが行われることを考えると、基底ベクトルの直交性よりもノルムの大きさの統一性の方が重要と考えられる。
前記数式(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)の内積値を示す。
転置算出手段23は、基底算出手段22から整数DCT基底を入力し、整数DCT基底の行列の転置行列を求め、整数IDCT基底として出力する。基底算出手段22により出力された整数DCT基底、及び転置算出手段23により出力された整数IDCT基底は、図1に示した符号化装置11の記憶部に格納され、整数DCT基底が直交変換部3による直交変換のために用いられ、整数IDCT基底が逆直交変換部6による逆直交変換のために用いられる。また、転置算出手段23により出力された整数IDCT基底は、後述する図9に示す復号装置38の記憶部に格納され、逆直交変換部33よる逆直交変換のために用いられる。
これにより、基底ベクトルのノルムの大きさの統一性と基底ベクトルの直交性とを向上させた整数DCT基底及び整数IDCT基底を算出することができ、符号化効率を向上させることができる。尚、整数DCT基底及び整数IDCT基底の各基底ベクトルが対称性の性質(c)を持つことから、前記数式(1’)の右辺第2項において、i<jとしてもよい。これにより、整数DCT基底及び整数IDCT基底を算出する際の計算量を減らすことができる。
(偶数行の基底ベクトルのみを用いる場合)
以下、非特許文献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’)の計算に含めないようにする。
また、非特許文献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’)の計算に含めないようにする。
以上により、直交変換基底算出装置20の基底算出手段22は、前記数式(1)(1’)のコストが最小になるように整数DCT基底の要素を求める際に、前記数式(1)(1’)の内積計算において、偶数行の基底ベクトルの内積のみを計算すればよい。
(第2行目の基底ベクトルを用いる場合)
また、DCT基底の周期性の性質を考慮すると、直交変換基底算出装置20の基底算出手段22は、図4に示した演算結果の行列において2行目の非0の要素に対応する基底ベクトルの内積についてのみ、前記数式(1)(1’)を計算すればよい。
図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とすればよい。
したがって、図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の内積値を示す。
前記数式(2)のコスト関数を最小化する第2行目の基底ベクトルは、整数に丸めた値±1の範囲で求めると、以下のとおりになる。
[91, 87, 79, 70, 56, 43, 27, 8, -8, -27, -43, -56, -70, -79, -87, -91]
(基底ベクトルの前半の要素のみを用いる場合)
さらに、前記数式(2)を用いてコストを計算する際には、図3に示した整数DCT基底の対称性の性質を考慮すると、基底ベクトルの前半の8個目の要素までの内積をそれぞれ計算すればよい。これは、偶数行の基底ベクトルが奇対称であり、要素数が2Mの奇対称のベクトルをo1,o2とすると、o1,o2の内積は、o1,o2の前半のM個目までの要素の内積の2倍になるからである。これにより、計算量を減らすことができる。
以下、具体的に説明する。直交変換基底算出装置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基底を求める。
すなわち、基底算出手段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基底の要素を求める。
ステップ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];
ステップ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];
ステップ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番目の要素までの内積を行うことを示す。
ここで、16×16要素からなる整数DCT基底の基底ベクトルは要素の数が16個であるから、ノルムの大きさは、64×64×16=65536に近づけるようにするが、ここでは基底ベクトルの前半8個の要素を用いて計算するから、ノルムの大きさは、64×64×8=32768に近づけるようする。このように、基底ベクトルの前半の要素のみを用いて整数DCT基底を求める場合、16個の要素のベクトルの内積演算を8個の要素のベクトルの内積演算にすることができるから、和と積の計算回数を半分にし、計算量を削減することができる。この結果をもとに、奇対称性と、第2行目の基底ベクトルの要素と他の偶数行の基底ベクトルの要素の関係とから、偶数行の基底ベクトルを求め、既知の奇数行の基底ベクトルを組み合わせることにより、図6の16×16要素からなる整数DCT基底を求めることができた。
図6は、本発明の実施形態にて用いる、16×16要素からなる整数DCT基底を示す図であり、図5に示した直交変換基底算出装置20の基底算出手段22により前記数式(1)等を用いて算出され出力される整数DCT基底を示す。尚、直交変換基底算出装置20の転置算出手段23により算出され出力される16×16要素の整数IDCT基底は、図6に示した整数DCT基底の行列の転置行列である。
図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)の性質)がさらに向上しているといえる
図8は、本発明の実施形態にて用いる、32×32要素からなる整数DCT基底を示す図であり、図6に示した16×16要素からなる整数DCT基底と同様に、図5に示した直交変換基底算出装置20の基底算出手段22により前記数式(1)等を用いて算出され出力される整数DCT基底を示す。尚、直交変換基底算出装置20の転置算出手段23により算出され出力される32×32要素からなる整数IDCT基底は、図8に示した整数DCT基底の行列の転置行列である。
〔復号装置〕
次に、本発明の実施形態による復号装置について説明する。図9は、本発明の実施形態による復号装置の構成を示すブロック図である。この復号装置38は、エントロピー復号部31、逆量子化部32、逆直交変換部33、加算部34、後処理部35、フレームメモリ36及び信号予測部37を備えている。
エントロピー復号部31は、図1に示した符号化装置11により出力された符号化信号を入力し、図1に示したエントロピー符号化部10のエントロピー符号化に対応するエントロピー復号を行う。エントロピー復号の処理については既知であるから、ここでは説明を省略する。逆量子化部32は、エントロピー復号部31によりエントロピー復号された信号を入力し、図1に示した逆量子化部5と同様に、逆量子化を行い、逆量子化した信号を逆直交変換部33に出力する。
逆直交変換部33は、逆量子化部32から逆量子化された信号を入力し、図1に示した逆直交変換部6と同様に、図示しない記憶部から所定の整数精度の逆直交変換基底を読み出して逆直交変換を行う。所定の整数精度の逆直交変換基底は、前述の直交変換基底算出装置20により算出され、復号装置38の記憶部に予め格納されているものとする。
加算部34は、逆直交変換部33からの信号を入力すると共に、後述する信号予測部37から予測信号を入力し、両信号を加算する。後処理部35は、加算部34から加算結果の信号である復号信号を入力し、この復号信号に対し、図1に示した前処理部1の前処理に対応する所定の後処理を行い、出力信号として出力する。後処理については既知であるから、ここでは説明を省略する。
フレームメモリ36は、加算部34から加算結果の信号を入力し、復号信号として記憶する。フレームメモリ36に記憶された復号信号は、後述する信号予測部37により、予測信号を生成する際の参照信号として読み出される。信号予測部37は、フレームメモリ36から参照信号を読み出し、参照信号に基づいて、所定の予測方式により予測信号を生成し、加算部34に出力する。
〔実験結果〕
次に、本発明の実施形態による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を用いるよりも、基底ベクトルのノルムの大きさの統一性及び基底ベクトルの直交性が改善されたため、符号化効率が良くなっていることがわかる。
以上のように、本発明の実施形態による符号化装置11によれば、直交変換基底算出装置20により算出された、基底ベクトルのノルムの大きさの統一性と基底ベクトルの直交性とがさらに向上した整数DCT基底を用いてDCTを行い、この整数DCT基底の転置行列を整数IDCT基底としてIDCTを行い、符号化を行うようにした。また、本発明の実施形態による復号装置38によれば、直交変換基底算出装置20により算出された、基底ベクトルのノルムの大きさの統一性と基底ベクトルの直交性とがさらに向上した整数DCT基底の転置行列を整数IDCT基底として用い、IDCTを行い、復号を行うようにした。これにより、直交変換精度及び逆直交変換精度を改善することができ、符号化効率を向上させることができる。
尚、本発明の実施形態による符号化装置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等)、半導体メモリ等の記憶媒体に格納して頒布することもできる。
以上、実施形態を挙げて本発明を説明したが、本発明は前記実施形態に限定されるものではなく、その技術思想を逸脱しない範囲で種々変形可能である。例えば、前記実施形態において、直交変換基底算出装置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等としてもよい。また、上記実施形態では画像信号を対象にして説明したが、本発明の符号化装置、復号装置及びプログラムは、入力が画像信号に限定されることはない。
1 前処理部
2 減算部
3 直交変換部
4 量子化部
5 逆量子化部
6 逆直交変換部
7 加算部
8 フレームメモリ
9 信号予測部
10 エントロピー符号化部
11 符号化装置
20 直交変換基底算出装置
21 整数化手段
22 基底算出手段
23 転置算出手段
31 エントロピー復号部
32 逆量子化部
33 逆直交変換部
34 加算部
35 後処理部
36 フレームメモリ
37 信号予測部
38 復号装置

Claims (9)

  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基底
    Figure 0005662887
    を用いて、前記入力信号を直交変換することを特徴とする符号化装置。
  6. 請求項1から4までのいずれか一項に記載の符号化装置において、
    前記直交変換部は、以下の32×32要素からなる整数DCT基底
    Figure 0005662887
    を用いて、前記入力信号を直交変換することを特徴とする符号化装置。
  7. 請求項1から6までのいずれか一項に記載の符号化装置により出力された符号化信号を入力し、前記符号化信号を逆量子化して逆直交変換し、復号信号を生成する復号装置において、
    整数精度の逆直交変換基底を用いて、前記逆量子化した信号を逆直交変換する逆直変換部を備え、
    前記逆直交変換部は、前記符号化装置の直交変換部にて用いる整数精度の直交変換基底の転置行列を、前記整数精度の逆直交変換基底として用いる、ことを特徴とする復号装置。
  8. コンピュータを、請求項1から6までのいずれか一項に記載の符号化装置として機能させるためのプログラム。
  9. コンピュータを、請求項7に記載の復号装置として機能させるためのプログラム。
JP2011147346A 2011-07-01 2011-07-01 符号化装置、復号装置及びプログラム Active JP5662887B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011147346A JP5662887B2 (ja) 2011-07-01 2011-07-01 符号化装置、復号装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011147346A JP5662887B2 (ja) 2011-07-01 2011-07-01 符号化装置、復号装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2013016972A JP2013016972A (ja) 2013-01-24
JP5662887B2 true JP5662887B2 (ja) 2015-02-04

Family

ID=47689222

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011147346A Active JP5662887B2 (ja) 2011-07-01 2011-07-01 符号化装置、復号装置及びプログラム

Country Status (1)

Country Link
JP (1) JP5662887B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9014A (en) * 1852-06-15 William compton
US8017A (en) * 1851-04-01 Splint-machine
EP1312220A2 (de) * 2000-08-12 2003-05-21 Robert Bosch Gmbh Verfahren zur ganzzahligen approximation von transformationskoeffizienten sowie coder und decoder
US7242713B2 (en) * 2002-05-02 2007-07-10 Microsoft Corporation 2-D transforms for image and video coding
US8331454B2 (en) * 2007-11-12 2012-12-11 Cisco Technology, Inc. Integer transform function for video compression systems

Also Published As

Publication number Publication date
JP2013016972A (ja) 2013-01-24

Similar Documents

Publication Publication Date Title
RU2612612C2 (ru) Способ и устройство для выполнения интерполяции на основе преобразования и обратного преобразования
JP4030558B2 (ja) 画像復号装置
US8756482B2 (en) Efficient encoding/decoding of a sequence of data frames
US20180115787A1 (en) Method for encoding and decoding video signal, and apparatus therefor
US20130195177A1 (en) Method and device for the transformation and method and device for the reverse transformation of images
US11368691B2 (en) Method and device for designing low-complexity calculation DST7
KR101480412B1 (ko) 영상의 변환 방법 및 장치, 역변환 방법 및 장치
KR101300300B1 (ko) 오더-n 변환으로부터 오더-2n 변환을 생성하는 시스템 및 방법
CN110710208B (zh) 嵌入关于eob位置的信息
JP5662887B2 (ja) 符号化装置、復号装置及びプログラム
JP2017103723A (ja) 符号化装置、復号装置、及びプログラム
JP2015035788A (ja) 画像符号化装置、画像符号化方法及びプログラム
US11290748B2 (en) Method and device for designing low complexity DST7
JP5561611B2 (ja) 画像符号化方法,画像符号化装置および画像符号化プログラム
JP2012147205A (ja) 離散サイン変換回路、逆離散サイン変換回路、併用回路、符号化装置、復号装置及びプログラム
JP5202558B2 (ja) イントラ予測装置、符号化器、復号器及びプログラム
JP6557589B2 (ja) 符号化装置、復号装置、及びプログラム
JP6846134B2 (ja) 映像符号化装置及び映像復号装置
JP2005354307A (ja) 逆量子化器及びこれを用いた画像復号化装置
JP5626728B2 (ja) 画像符号化方法,画像符号化装置および画像符号化プログラム
JP6541260B2 (ja) 変換処理装置、逆変換処理装置、符号化装置、復号装置、及びコンピュータプログラム
JP6102707B2 (ja) デジタル符号化装置
KR101252043B1 (ko) 통합 모듈을 구비한 복호화 장치 및 복호화 처리 방법
JP2006135786A (ja) 可逆ビデオ符号化装置,可逆ビデオ符号化方法,可逆ビデオ復号装置,可逆ビデオ復号方法,可逆ビデオ符号化プログラム,可逆ビデオ復号プログラムおよびそれらのプログラムの記録媒体
JP2015061143A (ja) 映像符号化装置、および、映像符号化プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141106

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141111

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141205

R150 Certificate of patent or registration of utility model

Ref document number: 5662887

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250