JP2008167419A - データ変換処理装置及びその方法 - Google Patents

データ変換処理装置及びその方法 Download PDF

Info

Publication number
JP2008167419A
JP2008167419A JP2007311479A JP2007311479A JP2008167419A JP 2008167419 A JP2008167419 A JP 2008167419A JP 2007311479 A JP2007311479 A JP 2007311479A JP 2007311479 A JP2007311479 A JP 2007311479A JP 2008167419 A JP2008167419 A JP 2008167419A
Authority
JP
Japan
Prior art keywords
addition
data
subtraction
lossless
subtracting
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.)
Granted
Application number
JP2007311479A
Other languages
English (en)
Other versions
JP4378407B2 (ja
Inventor
Tadayoshi Nakayama
忠義 中山
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2007311479A priority Critical patent/JP4378407B2/ja
Publication of JP2008167419A publication Critical patent/JP2008167419A/ja
Application granted granted Critical
Publication of JP4378407B2 publication Critical patent/JP4378407B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

【課題】少ない演算処理で、あるいは小さい回路規模でロスレス直交変換処理を実行できるデータ変換処理方法を提供する。
【解決手段】X3にX2を加算し(1303)、X0からX1を減算し(1302)、その加算結果と減算結果との差を表すデータを1ビット右シフトして整数化した中間データを生成する(1301)。この中間データとX2との間で加減演算し(1306)、中間データとX1との間で加減演算し(1305)、これら加減演算の演算結果(1305)と、加算して演算結果(1303)との間で加減演算し(1308)、加減演算の演算結果(1306)と減算結果(1302)との間で加減演算する(1307)。そして演算結果(1306)をY1、演算結果(1305)をY2、演算結果(1308)をY3、演算結果(1307)をY0として出力する。
【選択図】図13

Description

本発明は、例えば整数データを出力する可逆変換が可能なロスレス4点直交変換処理を実行するデータ変換処理装置及びその方法に関する。
画像、特に多値画像は非常に多くの情報を含んでおり、その画像を蓄積或いは伝送する際には、その膨大なデータ量が問題になる。このため画像の蓄積或いは伝送に際しては、画像の持つ冗長性を除く、或いは画質の劣化が視覚的に認識し難い程度で画像の劣化を許容することによって、その画像データの量を削減する高能率符号化が用いられる。例えば、静止画像の国際標準符号化方式としてISOとITU−Tにより勧告されたJEPGでは、画像データをブロック(8画素×8画素)毎に離散コサイン変換(DCT)してDCT係数に変換した後に、各DCT係数を量子化し、更に、その量子化した結果をエントロピー符号化することにより画像データを圧縮している。このDCTを利用した圧縮技術にはJPEG以外にも、H261,MPEG1/2/4等がある。
JPEGにおいて、圧縮・伸長後の画像が元の画像と完全に一致するようロスレス符号化モードが規格化されたが、当時はロスレス変換技術が十分研究されておらず、DCTを用いてロスレス変換を実現することができなかった。そのため、DCTを用いたブロック変換符号化とは異なる技術で、ある画素単位の予測符号化という方法でロスレス符号化を実現していた。
その後、ロスレス符号化専用の標準符号化技術(JPEG−LS)が規格化されたが、更に後に規格化されたJPEG2000では、ウェーブレット変換を用いることにより、ロスレス変換と劣化を伴う通常圧縮(ロッシー変換)の両方を実現することが可能となった。
近年、DCTにおいてもロスレス変換の研究が進み、現在広く普及しているDCTベースのJPEGでロスレス圧縮を実現しようとする試みがなされている。JPEGで用いられるDCTは8点DCTである。この8点DCTは、図1に示すように、8点DCTは4つの2点変換、4点DCT及び4点直交変換とに分解できる。4点DCTと4点変換は更に細かい2点変換に分解できるが、ここでは4点DCTに着目する。
4点DCTは、図2に示すように4つの2点変換201〜204に分解できる。ロスレス変換を実現するには、分解した各2点変換をロスレス変換にすればよい。2点変換のロスレス変換は、非特許文献1に紹介されているラダー回路網と整数化(丸め)という手法で実現できる。
2点変換行列を行列式の値が「1」になるように、入力又は出力データを入れ替えると2点変換は回転変換となる。2点回転変換が2次元のせん断変換3回で実現できることは幾何学の分野ではよく知られている。2次元のせん断変換における2×2変換行列は、2つの対角要素が共に「1」で、2つの非対角要素の1つが「0」、もう1つが傾斜角に対応するパラメータである。
このせん断変換をシグナルフローで表わすと、1回のせん断変換は乗算処理と加算処理からなる1段の梯子演算に置き換えられる。よって、2点回転変換は、図3に示すように3段の梯子演算で実現できる。図3において、各梯子演算における乗算処理後の値を丸め処理して整数化することにより容易にロスレス変換にすることができる。よって、ロスレス変換における梯子演算では、乗算処理部311,321,331、丸め処理部313,323,333、加算処理部315,325,335(減算処理の場合もある)の3つの処理からなる。回転角がθであるときの乗算係数は、乗算処理部311,321,331の順にそれぞれ、TAN(θ/2)、−SIN(θ)、TAN(θ/2)である。
そして梯子演算の1段ごとに乗算結果を整数化するための丸め処理を行なうことにより、乗算結果が整数でない限り必ず丸め誤差が発生し、各梯子演算で発生する誤差は出力データに含まれる。
従来、4つの2点回転変換処理からなる4点直交変換のロスレス変換は、図4のように構成されていた。
図4において、401〜404は各々2点回転変換で、それぞれは図3に示すように3段の梯子演算で構成されている。このロスレス4点直交変換全体でみると12段の梯子演算があり、同じく12回の丸め処理(Rで示す)が行なわれる。当然のように、丸め処理の回数に比例して丸め誤差が増える。
一方、非特許文献1では、4点直交変換を4次元のせん断変換5回に分割して、ロスレス変換を実現している。n次元の1回のせん断変換は(n−1)個の梯子演算に対応するので、4点直交変換では(4−1)×5=15個の梯子演算が必要になる。この数はそのまま乗算処理の回数になる。しかし、せん断変換の性質上、丸め処理を大幅に減らすことができる。多次元のせん断変換では、梯子演算の梯子の先(加算対象となるデータ)が1つのデータに集中するので、それらのデータを合算してから丸め処理を行なうことができ、せん断変換1回につき1回の丸め処理で済ますことができる。よって、非特許文献1の4点直交変換では、合計5回の丸め処理で済む。
ロスレス変換ではない変換、即ち、線形変換の結果を基準とすると、上記ロスレス変換したデータには、丸め処理の回数に比例して丸め誤差が重畳して変換精度が悪くなる。
ロスレス変換後にエントロピー符号化を行って生成した符号化データを復号する際、必ず、そのロスレス変換に対応した逆ロスレス変換を行なうという状況しかありえない場合には何ら問題はない。しかし例えば、ロスレスDCTを用いてJPEG符号化した符号化データを、通常のJPEGデコーダで復号するといった状況が考えられる。その際、ロスレスDCTの変換精度の違いが、復号した画像信号との差となって表れ画質に影響を与える。これは、ロスレス変換が線形変換に近ければ近い方が良いことを示す典型的な例である。
その他、ロスレス符号化とロッシー符号化とで同じ種類の変換を用いる場合、ロスレス変換が必要となる。そしてロッシー符号化時の符号化効率を考慮すると、該ロスレス変換が線形変換に近ければ近い方が良いといった技術的な背景がある。
小松邦紀、瀬崎薫、「可逆的離散コサイン変換とその画像情報圧縮への応用」、信学技報、IE97−83,pp.1〜6、1997年11月
これまでのロスレス4点直交変換の処理方法では、乗算処理が12回或いは15回と多く必要であった。乗算回数少ない方を選べば丸め処理の回数が12回になり、丸め処理が5回で済む方を選べば乗算回数が15回になる。
また乗算係数が特殊(a=1)で、乗算を必要としないロスレス4点アダマール変換処理においても、バタフライ演算を用いた場合には8回の加減算処理と2回以上の丸め処理が必要である。これでは演算回数が増えて処理速度が遅くなったりハードウェア規模が大きくなるという問題がある。
本発明は上記従来例に鑑みてなされたもので、本発明の特徴は、少ない演算処理で、或は小さい回路規模でロスレス直交変換処理を実行できるデータ変換処理装置及びその方法を提供することにある。
本発明の一態様に係るデータ変換処理装置は以下のような構成を備える。即ち、
4つの整数データ(X0、X1、X2、X3)を入力とし、4つのデータ(Y0、Y1、Y2、Y3)に直交変換するデータ変換処理装置であって、前記X3に前記X2を加算する加算手段と、前記X0から前記X1を減算する減算手段と、前記加算手段から得られる結果と前記減算手段から得られる結果との差を表すデータを、1ビットだけ右にシフトして整数化したデータを生成する生成手段と、前記整数化したデータと前記X2との間で加減算する第1の加減算手段と、前記整数化したデータと前記X1との間で加減算する第2の加減算手段と、前記第2の加減算手段の出力と、前記加算手段の出力との間で加減算する第3の加減算手段と、前記第1の加減算手段の出力と、前記減算手段の出力との間で加減算する第4の加減算手段とを有し、前記第1の加減算手段の演算の結果をY1、前記第2の加減算手段の演算の結果をY2、前記第3の加減算手段の演算の結果をY3、前記第4の加減算手段の演算の結果をY0として出力することを特徴とする。
また本発明の一態様に係るデータ変換処理方法は以下のような工程を備える。即ち、
4つの整数データ(X0、X1、X2、X3)を入力とし、4つのデータ(Y0、Y1、Y2、Y3)に直交変換するデータ変換処理装置のデータ変換処理方法であって、前記X3に前記X2を加算する加算工程と、前記X0から前記X1を減算する減算工程と、前記加算工程で得られる結果と前記減算工程で得られる結果との差を表すデータを、1ビットだけ右にシフトして整数化したデータを生成する生成工程と、前記整数化したデータと前記X2との間で加減算する第1の加減算工程と、前記整数化したデータと前記X1との間で加減算する第2の加減算工程と、前記第2の加減算工程の演算の結果と、前記加算工程の演算の結果との間で加減算する第3の加減算工程と、前記第1の加減算工程の演算の結果と、前記減算工程の演算の結果との間で加減算する第4の加減算工程とを有し、前記第1の加減算工程の演算の結果をY1、前記第2の加減算工程の演算の結果をY2、前記第3の加減算工程の演算の結果をY3、前記第4の加減算工程の演算の結果をY0として出力することを特徴とする。
本発明によれば、少ない演算処理でロスレス直交変換処理やロスレスアダマール変換処理を実行できるという効果がある。
また本発明によれば、小さい回路規模でロスレス直交変換処理やロスレスアダマール変換処理を実行できる。
以下、添付図面を参照して本発明の好適な実施の形態を詳細に説明する。
[実施の形態1]
上記従来技術で説明したように、前述の非特許文献1において、ロスレス2点変換を実現するための構成が図3に示されている。図3の簡単な説明は従来技術のところでも述べたが、ここでは本実施の形態への展開を考慮して回転角を(−2θ)として再度説明する。
回転角を(−2θ)とした場合、1段目の梯子演算部の乗算部311において、一方のデータ(X1)に(−TAN(θ))を乗算した後、この乗算で発生した小数点以下のデータを整数化するための丸め処理を丸め処理部313にて行ない、この丸め処理した結果を加算部315により、もう一方のデータ(X0)に加算する。
2段目の梯子演算部における乗算係数をSIN(2θ)、3段目の梯子演算部における乗算係数を(−TAN(θ))にして、2段目、3段目の梯子演算部においても同様の処理を行なう。他の文献等を見ても、2点ロスレス変換を梯子演算で構成した例は、このような3段のものしか示されていない。
ここで、2段目の梯子演算の乗算部321の乗算係数を半分(SIN(2θ)/2)にして2段に置き換えた構成を図5(A)に示す。丸め処理を無視すれば、図5(A)の構成の処理内容は次のように解釈できる。
変換処理による回転角度を(−2θ)とすると、前段2段の梯子演算501で(−θ)回転して、後段の2段の梯子演算502で(−θ)回転し、全体で(−2θ)回転する。ここでは前段2段の梯子演算501と後段2段の梯子演算502の回転角は同じだが、前段2段の梯子演算501による回転変換では変換データが正規化されておらず、回転角(−θ)に依存したスケーリング係数(COS(θ))が2つの変換データに重み付けされている。このスケーリング係数は、梯子演算501の上側出力では1/COS(θ)で、下側出力ではCOS(θ)である。そして後段2段の梯子演算502では、上述の重み付けされた非正規化データを回転処理しながら、逆の重み付けをして、最終的に正規化した回転変換データを生成する。
従来は、図4の回転処理の内容をここまで分解しても何も得るものが無かった。そればかりか、逆に乗算や丸め処理が増えてしまい、このような構成は無駄が多くて価値のないものであった。ところが、本願発明人はこの分解によって、新しい見方とそれに基づいた新たなロスレス4点変換の構成を見い出した。その構成では、図5(A)の構成を基本的な構成要素として用いる。また後述する実施の形態3も図5(A)の構成なくしては考えられない。よって、図5(A)の構成そのものに発明性があると考え、本発明の実施の形態1とする。
[実施の形態1の変形例]
図5(A)(B)及び図6(A)(B)は、本発明の実施の形態1に係るロスレス4点直交変換を説明するブロック図である。
図5(A)の構成に対して、更に図5(B)及び図6(A),(B)に示すような変形例が考えられる。
図5(B)は、図5(A)の梯子演算における乗算係数の正負を反転すると共に、梯子演算の梯子の向きを、図5(A)に対して全て反転したものである。従って図5(B)の機能は、図5(A)と全く同じである。
図6(A)は、図5(A)と梯子演算の向きを同じにし、梯子演算における乗算係数の正負を図5(A)に対して反転させたものである。
図6(B)は、図5(A)の梯子演算における乗算係数を同じにし、梯子演算の梯子の向きを全て図5(A)に対して反転させたもので、言い換えると、図5(B)の乗算係数の正負を反転したものである。図6(B)の機能は図6(A)と全く同じである。
次に、上記変形例に対する補足説明を行う。
回転処理における回転方向を反転するには2つの方法があり、1つは梯子演算における乗算係数の正負を反転する方法、もう1つは梯子演算の梯子の向きを反転する方法である。このうち前者を図5(A)に適用したものが図6(A)、後者を図5(A)に適用したものが図6(B)、両方を図5(A)に適用したものが図5(B)である。図5(B)のように両方を適用すると、回転方向が反転の反転で元に戻るため、図5(B)の回転方向は図5(A)と同じになる。
図5(A)と図5(B)は機能的には同一であるが、内部データの重み付けが異なる。既に説明したように、図5(A)のロスレス変換501の出力データには、スケーリング係数1/COS(θ)とCOS(θ)がそれぞれ重み付けされている。それに対し、図5(B)のロスレス変換503の出力データには、前記スケーリング係数のそれぞれの逆数であるCOS(θ)と1/COS(θ)がそれぞれ重み付けされている。そして図5(B)のロスレス変換504は、これに対応した回転と正規化を行なうようになっている。これが図5(A)と図5(B)の構成上の違いである。
同様に図6(A)と図6(B)も機能的には同一であるが、上述したように内部データの重み付けが逆数の関係になっている。
図5(A),(B)及び図6(A),(B)はフローチャートの形式で示されていないが、左の梯子演算から順番に演算するだけで容易にロスレス直交変換がソフトウェアで実現できるし、ハードウェア化も容易である。
一般的に、論文等においても、DCTや直交変換等の処理をフローチャートで表現することは少なく、図1〜図6に示したシグナルフロー形式で表現されることが多い。それは、この表現形式がソフトウェアでの実現とハードウェアでの実装の両方に対応できるからである。よって、以下に示す図もすべてシグナルフロー形式とする。
[実施の形態2]
本発明の実施の形態2では、前述の実施の形態1の基本構成を組み合わせた4点直交変換方法と変換装置について説明する。まず、実施の形態2の基本形を図7に示す。同図において係数a=TAN(θ)である。
図7は、本発明の実施の形態2に係るロスレス4点直交変換を説明するブロック図である。
図7の構成は、前述の実施の形態1で説明した図5(A)と図5(B)とを用いて、(正規化データ入力、正規化データ出力の)正規4点直交変換のロスレス変換を行なうものである。各基本構成における回転角は2θとする。
4つの入力データは、ロスレス変換501,503にてロスレス変換され、重み付きの中間データが生成される。この中間データは上から順に、1/COS(θ)、COS(θ),COS(θ),1/COS(θ)という重み付けがなされている。ここで同じ重みを持つ2番目と3番目のデータを入れ替えて、次のロスレス変換502,504に入力することにより、その重みを取り除くと共にロスレス回転変換を行なう。
ここで丸め処理を無視した時、即ち、線形変換としてみたときの変換処理結果は、上から順に、以下のような結果となる。
[数1]
Y0=(X0−aX1−aX2+a2X3)/(1+a2
Y1=(aX0−a2X1+X2−aX3)/(1+a2
Y2=(aX0+X1−a2X2−aX3)/(1+a2
Y3=(a2X0+aX1+aX2+X3)/(1+a2
入力データに対する乗算係数をベクトルとしてみると、4つの変換式に対応する4つのベクトルは全て互いに直交している(内積が「0」になる)ことが分かる。また、ベクトルの絶対値も「1」になっているので、4点正規直交変換が実現できている。
従来の方式では、4つの回転処理からなる4点正規直交変換は、4つの回転処理の回転角が同じ場合でも、各々の回転処理を3段の梯子演算に置き換えて、計12個の梯子演算で実現する方法しかなかったが、本実施の形態では、8段の梯子演算で実現できる。
従来のロスレス変換においては、各々の梯子演算に丸め処理が入るので、従来は12回の丸め処理が必要であったものが、本実施の形態2によれば、図7に示すように8回の丸め処理で済み、線形変換に対する変換誤差を減らすことができる。
[実施の形態2の変形例1]
使用する2つのロスレス2点変換は図5(A)と図6(A)の組み合せであってもよい。図6(A)の回転方向は図5(A)の逆方向になので、これに対応して図6(A)側に入力する2つのデータを交換する。この構成を図8に示す。
図8は、本発明の実施の形態2の変形例1に係るロスレス4点直交変換を説明するブロック図である。
この変形例が意味することは、回転方向が逆方向のもの2つからでもロスレス4点直交変換を構成できるということである。
図8の構成から得られる4点直交変換の変換式を以下に示す。但し、丸め処理は無視して、線形変換として見た時の変換式である。上述した図7の変換式(数1)と較べると3つ目と4つ目の式が入れ替わっていることが分かる。これは入力データの交換と回転処理の方向が逆になっているのに対応している。
[数2]
Y0=(X0−aX1−aX2+a2X3)/(1+a2
Y1=(aX0−a2X1+X2−aX3)/(1+a2
Y2=(a2X0+aX1+aX2+X3)/(1+a2
Y3=(aX0+X1−a2X2−aX3)/(1+a2
[実施の形態2の変形例2]
更に図7の構成を図9の構成に変形すると、丸め処理の回数を少なくでき、更に変換誤差を減らすことが出来る。
図9は、本発明の実施の形態2の変形例2に係るロスレス4点直交変換を説明するブロック図である。
図9では、図7におけるロスレス変換501の2段目の梯子演算の丸め処理とロスレス変換504の1段目の梯子演算の丸め処理を一体化する。即ち、両者の乗算結果を加算した後、まとめて1回丸め処理をして、その結果を加算対象となるデータに加算してもロスレス性は保たれる。
また図7の変換部503の2段目の梯子演算の丸め処理と変換部502の1段目の梯子演算の丸め処理も同様に、1つの丸め処理で一体化できる。
次に、このように一体化した丸め処理を梯子演算における3つめの処理である加算処理の後に移動する。こうして移動した丸め処理部を801,803で示している。このような移動が可能なのは、round()を丸め関数、Rを実数、Nを整数とした時に以下の関係が成り立つからである。
[数3]
round(R)+N=round(R+N)
ここで左辺は、移動前の丸め処理、右辺が移動後の丸め処理に対応している。この数式(3)は、実数に整数を加算してから丸め処理しても、実数を丸め処理した後、その丸め処理した整数を加算しても同じ結果になることを示している。この実数は、図9の新たな丸め処理部801,803より手前の梯子演算2段及び3段の各乗算結果の和に対応する。尚、本発明の実施の形態に係る丸め処理としては、最も一般的な四捨五入でもよいし、切り捨て或いは切り上げ処理でもよい。
[実施の形態2の変形例3]
図7の構成は図10の構成のようにも変形できる。
図10は、本発明の実施の形態2の変形例3に係るロスレス4点直交変換を説明するブロック図である。
図10は、図7の構成における乗算係数{a/(1+a×a)}の乗算を共通化したもので、当業者がみれば容易に分かる変形である。901は共通化した乗算処理部である。903は減算処理で、乗算を共通化するためにデータを一本化している。905は丸め処理部で、乗算処理部901の乗算結果を整数化している。907と909は加算処理部で、それぞれ整数化したデータを別のデータに加算している。その他の処理部はこれまでに出てきているものである。
この図10の構成の特徴は、ロスレス2点直交変換2個分の演算規模よりも、このロスレス4点直交変換の演算規模の方が小さいということである(減算処理が1つ増えているが、それよりも複雑な演算である乗算が1つ減っている。ハードウェアではこの差は大きい)。
但し、図10のように変形してしまうと、梯子演算のみで全て処理しているとはいえなくなってしまう。しかし、梯子演算を次のように拡張することで、図10の構成も全て梯子演算で処理していると解釈することができる。
通常の梯子演算は、1入力1出力形式であるが、図10の901,903,905,907,909を含む構成を2入力2出力形式の梯子演算と考える。これを更に一般化すると、n入力m出力の梯子演算も考えられる。但し、乗算処理部の数は1つに限定する。また、1つの乗算処理部に対して複数入力のデータを一本化するための加減算処理部が、拡張梯子演算には必要となる。
このような拡張梯子演算を導入することによって、図10の構成は、1入力1出力形式の梯子演算4つと2入力2出力形式の梯子演算1つから構成されていると言うことができる。
図10の構成から丸め処理を取り除くと、線形の4点直交変換を少ない演算量で実現することができる。その構成は図10から5つの丸め処理部を取り除いただけである。その構成を図11に示す。
この図11の構成は図10に似ているので、この変形例に含めているが、ロスレス変換よりも汎用性のある線形直交変換の高速演算法として有効である。さらに図11の構成は図18のように変形でき、梯子演算の乗算処理は最終的に4つまで減らすことができる。この図18の構成においても注意深く丸め処理を導入すれば、ロスレス変換が可能であることは言うまでもない。尚、図18において、1801は係数aを乗算する乗算器、1803は加算器、1805は減算器である。
[実施の形態2の変形例4]
更に図7において、a=TAN(θ)=1の時、図7に示す4点直交変換はロスレス4点アダマール変換となる。
通常、アダマール変換を行なう際は、入力データを並び替えるのが一般的である(例えば、X0とX3の間でバタフライ演算を行なう)が、ここでは、入力データの並び替えは行なわず、その代わりに出力データの並び替えを行なった。
図7でa=1にして、出力の並び替えを行なった構成を図12に示す。
図12は、本発明の実施の形態2の変形例4に係るロスレス4点直交変換を説明するブロック図である。
梯子演算における乗算係数が整数値の場合、小数点以下の値は「0」のままなので丸め処理は不要となり、その分、丸め処理が少なくなる。また、乗算係数(1/2)はビットシフトのみで実現できる処理なので、乗算器も不要となる。
図12の構成は当然のことながら、前述の変形例2(図9)、変形例3(図10)のように変形できる。図10のように変形した場合の構成は重要な意味があるので、その構成を図13に示す。
図13は、図10でa=1とした場合のロスレス4点直交変換を説明するブロック図である。
図13の構成をみると、ビットシフト(1/2)1300と1回の丸め処理1301と、7回の加減算処理1302〜1308で演算できる。この演算量は、線形のアダマール変換では高速演算として当たり前のように用いられるバタフライ演算で実現した時の演算量(加減算8回)よりも少ない。
一方、ロスレス4点アダマール変換の構成は、下記の文献2に示されている。この文献2では、該ロスレス変換を実現するために、4点アダマール行列を三角行列に分解して、それを梯子演算に置き換えるといった複雑な手順で実現しているが、その構成は、本実施の形態2の変形例4から得られた図12の構成より加算処理が1つ多く、8回の加減算処理を要している。本実施の形態2を用いた場合、一般化したロスレス4点直交変換の特殊解として得られる上に、僅かな変形で加減算器の数が最小となる構成が得られる。
(文献2)福間慎治、大山公一、岩橋政宏、神林紀、「ロスレスアダマール変換を応用したロスレス8点高速離散コサイン変換」、信学技報、IE99−65、pp.37−44、1999年10月
[実施の形態2の適用例]
図2に示す4点DCT演算では、(3π/8)の回転処理が必要である。この回転角(3π/8)は、変換空間の軸の交換や正負反転などの操作により、(π/8)の回転処理に変えることもできるが、ここでは(3π/8)の回転処理のまま扱う。この4点DCTを2次元化して、水平方向処理と垂直方向の処理の一部の順序を交換すると、途中の処理として局所的に以下のような演算が現われる。
Figure 2008167419
この数式(4)において、X11,X12,X21,X22は演算途中のデータであり、このデータの左側の変換行列を水平方向処理に対応付けると、このデータの右側の変換行列は垂直方向処理に対応する。どちらの変換行列も(3π/8)の回転処理を表わす。線形変換ではどちらの変換処理から先に行なってもよい(この時点ではまだロスレス化のための丸め処理が入っていないのでロスレス変換ではなく、線形変換である)が、ここでは左側の変換行列から先に処理を行なうものとする。
この変換処理を細かく見ていくと、(X11,X21),(X12,X22)という2個2組のデータに対して各々に(3π/8)の回転処理を行なった後、この変換結果の転置、即ち、一部のデータを交換して再度(3π/8)の回転処理を行なうものである。この処理をロスレス変換として実現するのが、前述の図5〜図9に示す構成において、θ=3π/8とした場合である。
[実施の形態3]
実施の形態3では、前述の実施の形態1で説明した図5(A)と(B)、それに、データ切り替え部を用いて、2点直交変換と4点直交変換の切り替えが可能な直交変換処理を提供する。この構成を図14に示す。
図14は、本発明の実施の形態3に係るロスレス4点直交変換を説明するブロック図である。
この構成で新たに登場する構成要素は、データ切り替え部1201である。不図示の制御信号に基づいて、このデータ切り替え部1201によりデータの流れを切り替えればロスレス4点直交変換となり、データを切り替えなければ2組のロスレス2点直交変換となる。
[実施の形態3の変形例]
前述の実施の形態2では、図7に示す構成を図10に示す構成まで簡略化できたが、この実施の形態3では2種類の機能を実現するため、そこまで簡略化することはできない。しかし、図15に示す構成に変形することができる。
図15は、本発明の実施の形態3の変形例に係るロスレス4点直交変換を説明するブロック図である。
この図15では、図14における係数{a/(1+a×a)}を乗算する乗算器と、係数{−a/(1+a×a)}を乗算する乗算器とそれぞれ1つにまとめることにより、乗算の回数をロスレス2点直交変換2個分と同じ数である6回に減らしている。
[実施の形態4]
実施の形態4では、これまで説明した梯子演算を適用した場合のロスレス2次元DCT変換部により変換して得られたDCT係数を量子化及びハフマン符号化して画像データ等を符号化する場合で説明する。
一般的に2次元DCTと言えば、JPEGなどで用いられている8×8のブロックサイズが使用されるが、ここでは4×4のロスレス2次元DCT変換の場合で示す。4×4の2次元DCTを8×8の2次元DCTへ拡張するのは、公知の技術で対応できる。
4点DCTの変換行列Mdctを次のように表わし、
Figure 2008167419
元の4×4データを、d00,d01,d02,...,d32,d33で表わすと、4×4の2次元DCTは以下のように数式で表現される。
Figure 2008167419
上式において、x00,x01,x02,...,x32,x33は、元のデータを2次元アダマール変換したデータを示している。丸め処理を入れてロスレス化を図ったロスレス2次元アダマール変換には、特願2002−193298に記載の変換方法を用いることができる。
ロスレス2次元アダマール変換後のデータに対して、水平方向のロスレス回転変換と垂直方向のロスレス回転変換を行うと、ロスレス2次元DCT変換となる。水平方向のロスレス回転変換は、x01とx03,x11とx13,x21とx23,x31とx33の4組のデータに対して行い、垂直方向のロスレス回転変換は、水平変換の結果である、x10とx30,x11とx31,x12とx32,x13とx33の4組のデータに対して行う。
図16は、本発明の実施の形態4に係る4×4ロスレス2次元DCT変換を説明するブロック図である。
図16において、x01とx03,x21とx23の2組のデータに対しては水平方向のみのロスレス回転変換1601,1602、x10とx30,x12とx32の2組のデータに対しては垂直方向のみのロスレス回転変換1603,1604を行い、x11とx13,x31,x33の1組のデータに対しては、水平方向と垂直方向のロスレス2次元回転変換1605を行っている。
水平方向又は垂直方向のみのロスレス回転変換1601〜1604のそれぞれは、図3に示す従来の3段の梯子演算で行い、ロスレス2次元回転変換1605は、図9又は図10に示す構成の梯子演算で行うことで実現できる。回転変換を一切行わない他のデータx00とx02,x20,x22は、ロスレス2次元アダマール変換係数がそのままロスレス2次元DCT変換係数となる。
図17は、本発明の実施の形態4に係るロスレス符号化が可能な符号化処理を説明するブロック図である。
図16に示すロスレス2次元DCT変換処理1701を最初に行い、その後、量子化処理1702、ハフマン符号化処理1703を行うことにより符号化データが得られる。ここで量子化ステップが全て「1」の時にロスレス符号化を行うことができる。即ち、図16のロスレス2次元DCT変換1605とロスレス逆変換の関係にあるロスレス2次元逆DCT変換を復号処理で行えば、量子化ステップが全て「1」の時に、元のデータを完全に復号できる。
よって、符号化処理時の量子化ステップの設定により、ロスレス符号化から非ロスレスで劣化のある高圧縮符号化まで連続的に圧縮及び伸張画像の画質を制御できる。
[他の実施の形態]
本発明の目的は前述したように、実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フロッピィ(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM,CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれている。
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含む。
以上説明したように本実施の形態によれば、少ない演算処理で変換精度の良い、ロスレス4点直交変換処理方法および装置を提供できるようになった。具体的には、最適化した構成で5回の乗算と5回の丸め処理でロスレス4点直交変換を実現できる。
また従来は、12回の乗算と12回の丸め処理、又は15回の乗算と5回の丸め処理を要していたのに対して、変換精度がほぼ同じもの(丸め処理回数が同じもの)と較べても乗算回数を1/3に減らすことができた。
一般的な8点DCTの1つの演算方法を説明するブロック図である。 一般的な4点DCTの1つの演算方法を説明するブロック図である。 従来のロスレス2点直交回転変換処理部の構成を示すブロック図である。 従来のロスレス4点直交変換処理部の構成を示すブロック図である。 本発明の実施の形態1に係るロスレス4点直交変換を説明するブロック図である。 本発明の実施の形態1に係るロスレス4点直交変換を説明するブロック図である。 本発明の実施の形態2に係るロスレス4点直交変換を説明するブロック図である。 本発明の実施の形態2の変形例1に係るロスレス4点直交変換を説明するブロック図である。 本発明の実施の形態2の変形例2に係るロスレス4点直交変換を説明するブロック図である。 本発明の実施の形態2の変形例3に係るロスレス4点直交変換を説明するブロック図である。 実施の形態2の変形例3から丸め処理部を取り除いた構成で高速線形4点直交変換処理を実現する構成を示す図である。 本発明の実施の形態2の変形例4に係るロスレス4点直交変換を説明するブロック図である。 本発明の実施の形態2の変形例5に係るロスレス4点直交変換(ロスレスアダマール変換)を説明するブロック図である。 本発明の実施の形態3に係るロスレス4点直交変換を説明するブロック図である。 本発明の実施の形態3の変形例に係るロスレス4点直交変換を説明するブロック図である。 本発明の実施の形態4に係る4×4ロスレス2次元DCT変換を説明するブロック図である。 本発明の実施の形態4に係るロスレス符号化が可能な符号化処理を説明するブロック図である。 実施の形態2の変形例3から丸め処理部を取り除いた構成に変更を加えて線形4点直交変換処理を実現する構成を示す図である。

Claims (4)

  1. 4つの整数データ(X0、X1、X2、X3)を入力とし、4つのデータ(Y0、Y1、Y2、Y3)に直交変換するデータ変換処理装置であって、
    前記X3に前記X2を加算する加算手段と、
    前記X0から前記X1を減算する減算手段と、
    前記加算手段から得られる結果と前記減算手段から得られる結果との差を表すデータを、1ビットだけ右にシフトして整数化したデータを生成する生成手段と、
    前記整数化したデータと前記X2との間で加減算する第1の加減算手段と、
    前記整数化したデータと前記X1との間で加減算する第2の加減算手段と、
    前記第2の加減算手段の出力と、前記加算手段の出力との間で加減算する第3の加減算手段と、
    前記第1の加減算手段の出力と、前記減算手段の出力との間で加減算する第4の加減算手段とを有し、
    前記第1の加減算手段の演算の結果をY1、前記第2の加減算手段の演算の結果をY2、前記第3の加減算手段の演算の結果をY3、前記第4の加減算手段の演算の結果をY0として出力することを特徴とするデータ変換処理装置。
  2. 前記生成手段は、
    前記差を表すデータを2で割った時に発生する小数点以下の1ビットの値を切り上げた整数値又は切り捨てた整数値のいずれか、もしくは、前記差を表すデータを1ビットだけ右にシフトした整数値又は1を加算した後に1ビットだけ右にシフトした整数値のいずれかを生成することを特徴とする請求項1に記載のデータ変換処理装置。
  3. 4つの整数データ(X0、X1、X2、X3)を入力とし、4つのデータ(Y0、Y1、Y2、Y3)に直交変換するデータ変換処理装置のデータ変換処理方法であって、
    前記X3に前記X2を加算する加算工程と、
    前記X0から前記X1を減算する減算工程と、
    前記加算工程で得られる結果と前記減算工程で得られる結果との差を表すデータを、1ビットだけ右にシフトして整数化したデータを生成する生成工程と、
    前記整数化したデータと前記X2との間で加減算する第1の加減算工程と、
    前記整数化したデータと前記X1との間で加減算する第2の加減算工程と、
    前記第2の加減算工程の演算の結果と、前記加算工程の演算の結果との間で加減算する第3の加減算工程と、
    前記第1の加減算工程の演算の結果と、前記減算工程の演算の結果との間で加減算する第4の加減算工程とを有し、
    前記第1の加減算工程の演算の結果をY1、前記第2の加減算工程の演算の結果をY2、前記第3の加減算工程の演算の結果をY3、前記第4の加減算工程の演算の結果をY0として出力することを特徴とするデータ変換処理方法。
  4. 前記生成工程は、
    前記差を表すデータを2で割った時に発生する小数点以下の1ビットの値を切り上げた整数値又は切り捨てた整数値のいずれか、もしくは、前記差を表すデータを1ビットだけ右にシフトした整数値又は1を加算した後に1ビットだけ右にシフトした整数値のいずれかを生成することを特徴とする請求項3に記載のデータ変換処理方法。
JP2007311479A 2003-06-23 2007-11-30 データ変換処理装置及びその方法 Expired - Fee Related JP4378407B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007311479A JP4378407B2 (ja) 2003-06-23 2007-11-30 データ変換処理装置及びその方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003178610 2003-06-23
JP2007311479A JP4378407B2 (ja) 2003-06-23 2007-11-30 データ変換処理装置及びその方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004174595A Division JP4366250B2 (ja) 2003-06-23 2004-06-11 データ変換処理装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2008167419A true JP2008167419A (ja) 2008-07-17
JP4378407B2 JP4378407B2 (ja) 2009-12-09

Family

ID=39696181

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007311479A Expired - Fee Related JP4378407B2 (ja) 2003-06-23 2007-11-30 データ変換処理装置及びその方法

Country Status (1)

Country Link
JP (1) JP4378407B2 (ja)

Also Published As

Publication number Publication date
JP4378407B2 (ja) 2009-12-09

Similar Documents

Publication Publication Date Title
JP5015285B2 (ja) 映像符号化のための低複雑性単一化変換
RU2413983C2 (ru) Обратимое преобразование для сжатия двумерных данных с потерями и без потерь
JP4311759B2 (ja) データ変換装置及びその制御方法
USRE42186E1 (en) Data transform processing apparatus and method
MX2008008987A (es) Transformadas con factores comunes.
JP3902990B2 (ja) アダマール変換処理方法及びその装置
JP2000151415A (ja) デ―タ処理方法、システム、装置、コンピュ―タ読取り可能媒体及びプログラム記憶装置
JP4378407B2 (ja) データ変換処理装置及びその方法
Omari et al. Image compression based on mapping image fractals to rational numbers
JP4933405B2 (ja) データ変換装置及びその制御方法
JP3452115B2 (ja) 画像処理装置
JP4266512B2 (ja) データ処理装置
TWI382768B (zh) 具有執行重疊濾波以及核心轉換的運算方法及其裝置
JP3754957B2 (ja) アダマール変換処理方法及びその装置
US20080123983A1 (en) Non-dyadic spatial scalable wavelet transform
KR100503182B1 (ko) 이미지데이터를디코딩하는방법
JP2006005478A (ja) 画像符号化装置及び画像復号装置
US20060078213A1 (en) Approximations used in performance sensitive transformations which contain sub-transforms
KR100402734B1 (ko) 부호화된 피승수를 사용하는 고정 소수점 곱셈 장치 및 그방법
JP5451171B2 (ja) データ変換処理装置およびデータ変換処理方法
KR100303744B1 (ko) 화상 압축·신장 방법 및 화상 압축·신장 장치
JP5206612B2 (ja) 符号化装置、符号化方法、及び、符号化プログラム
JPH04222122A (ja) データ圧縮装置
JPH05160746A (ja) 符号復号化装置

Legal Events

Date Code Title Description
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: 20090907

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090914

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120918

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120918

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130918

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees