JP4311759B2 - データ変換装置及びその制御方法 - Google Patents

データ変換装置及びその制御方法 Download PDF

Info

Publication number
JP4311759B2
JP4311759B2 JP2008226378A JP2008226378A JP4311759B2 JP 4311759 B2 JP4311759 B2 JP 4311759B2 JP 2008226378 A JP2008226378 A JP 2008226378A JP 2008226378 A JP2008226378 A JP 2008226378A JP 4311759 B2 JP4311759 B2 JP 4311759B2
Authority
JP
Japan
Prior art keywords
data
conversion
input data
conversion coefficient
generation unit
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.)
Expired - Fee Related
Application number
JP2008226378A
Other languages
English (en)
Other versions
JP2009135891A (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.)
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 JP2008226378A priority Critical patent/JP4311759B2/ja
Priority to PCT/JP2008/068513 priority patent/WO2009057439A1/en
Priority to US12/521,204 priority patent/US7912318B2/en
Publication of JP2009135891A publication Critical patent/JP2009135891A/ja
Application granted granted Critical
Publication of JP4311759B2 publication Critical patent/JP4311759B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/145Square transforms, e.g. Hadamard, Walsh, Haar, Hough, Slant transforms

Description

本発明は、整数データを可逆アダマール変換し、変換結果を出力するデータ変換技術に関するものである。
画像、特に多値画像は非常に多くの情報を含んでおり、蓄積のためには膨大なメモリを必要とし、伝送には多くの時間を要するという問題がある。このため画像の蓄積、伝送に際しては、画像の持つ冗長性を除く処理、或いは画質の劣化が視覚的に認識し難い程度で画像の内容を変更することによって、そのデータ量を削減する高能率符号化が用いられる。
例えば、静止画像の国際標準符号化方式としてISOとITU−Tにより勧告されたJEPGでは、画像データをブロックごと(8×8画素)に離散コサイン変換(DCT)して、DCT変換係数を得る。そして、そのDCT変換係数を各々量子化し、さらにエントロピー符号化するという処理手順を経ることで、画像データを圧縮している。このDCTを利用する圧縮技術として、JPEG以外にも、H261,MPEG−1/2/4等が知られている。
このDCT変換の一部の処理として、あるいは、画像データを変換する処理としてアダマール変換がある。アダマール変換は変換行列の要素が1又は−1のみから成る直交変換で、加算と減算のみで実現できるもっともシンプルな直交変換である。
2点アダマール変換の変換行列H2は、以下の数式(1)ように定義される。
Figure 0004311759
一般的なN(=2n)点アダマール変換行列HNは、N/2点アダマール変換行列HN/2と上記2点アダマール変換行列H2との間のクロネッカー積で再帰的に定義することができる。
Figure 0004311759
例えば、上記定義から、4点アダマール変換行列は次のようになる。
Figure 0004311759
この変換行列はナチュラル型と呼ばれるもので、基底ベクトルがシーケンシの順番に並んでいない。基底ベクトルの置換を繰り返して、2行目の基底ベクトルを4行目に移動し、元の3、4行目の基底ベクトルをそれぞれ1つ上の行に移動すると、基底ベクトルの順序がシーケンシ順序の変換行列WH4となる。
Figure 0004311759
上記変換行列はウォルシュ型あるいはウォルシュアダマール変換行列と呼ばれている。アダマール変換は可逆な直交変換であることが知られており、上記ナチュラル型、ウォルシュ型のいずれも可逆な変換が可能である上、変換行列が対称行列になっている。
ナチュラル型のアダマール変換行列H4の基底ベクトルを置換して得られる対称行列は、ウォルシュ型以外にも存在する。対角成分が+1といった特徴を持つ次に示す変換行列T4である。
Figure 0004311759
本発明では、この型のアダマール変換を用いる例を説明する。
先に説明したように、アダマール変換は可逆変換であると一般的に言われている。しかしながら、これはあくまで数学的に可逆であるという意味である。すなわち、変換時および逆変換において演算誤差が発生しないことを前提としており、そのためのデータ形式として固定小数点あるいは浮動小数点で演算を行なう必要がある。また、変換処理後の有効桁数をすべて保持する必要もある。
しかし、変換符号化、特に可逆の変換符号化に用いるアダマール変換では、変換処理後に有効桁数を少しでも減らしたい。具体的には、整数の入力のデータを変換処理して発生する小数点以下のデータは、明らかに入力データより増加した桁数(情報)と捉えることができるので、この小数点以下のデータを無くしたい。ところが、この小数点以下のデータを単純に丸め処理してしまうと可逆性は損なわれてしまう。例えば、
123、 78、 84、 56
の4つのデータを(5)式の変換行列でアダマール変換を行なうと、その変換結果は次のようになる。
170.5、 30.5、 36.5、 8.5
これらを単純に小数点以下を四捨五入して整数化すると
171、 31、 37、 9
となる。ここで、式(5)で示される変換行列は、転置行列である点に注意されたい。すなわち、上記整数化した結果を、再度、式(5)で変換することは、逆変換することと等価となり、その逆変換結果は、次のようになる。
124、 78、 84、 56
この結果を見ると、先頭データの“123”が、変換、そして、その逆変換により“124”になってしまう。つまり、整数化したデータを出力するアダマール変換は可逆性を保証できないことを意味する。
以下では、整数化したデータを出力するアダマール変換を整数型アダマール変換と呼び、可逆変換が可能な整数型アダマール変換を整数型可逆アダマール変換あるいはロスレスアダマール変換と呼ぶことにする。
ロスレス4点アダマール変換を実現する先行技術は2つに大別できる。1つはLadder Network(梯子演算)を用いるものである。そして、もう1つは、線形アダマール変換の後に、或る規則の丸め処理を行うものである。
前者は非特許文献1に、後者は特許文献1に開示されている。
福間慎治、大山公一、岩橋政宏、神林紀、"ロスレスアダマール変換を応用したロスレス8点高速離散コサイン変換"、信学技報、IE99−65、pp.37−44、1999年10月 特開2003−258645号公報
非特許文献1では、該ロスレス変換を実現するために、4点アダマール変換行列を三角行列に分解して、それを梯子演算に置き換えるといった複雑な手順で実現している。図9がその構成の例である。図示のように、その回路構成は複雑であり、演算の内容も直感的に分かり難い。このため、ソフトウェアやハードウェアに実装する時にミスがあっても発見しにくい上に、演算処理量が少ないというわけでもない。
一方、後者の特許文献1に開示されている方法は、線形アダマール変換した小数点データの変換係数に対し、奇数個のデータの小数点以下を切り上げ処理し、他の奇数個のデータの小数点以下を切り捨て処理するものである。この特許文献1は、丸め処理の仕方を特徴としているのみであって、線形アダマール変換の演算を減らす工夫、丸め処理に要する処理量を減らす工夫などは成されていない。
このように、既存のロスレス4点アダマール変換は、可逆性に重点が置かれていたため、冗長な処理が行われており、変換処理を高速に行うには不向きであった。本発明はまさにかかる点を改善するものである。
かかる課題を解決するため、例えば本発明のデータ変換装置は以下の構成を備える。すなわち、
整数表現された4つの入力データを、周波数空間上の、整数で表わされる1つのDC変換係数と3つのAC変換係数に変換し、出力するデータ変換装置であって、
前記4つの入力データを合算し、小数点以下の切り上げ、もしくは、小数点以下切り捨ての2つの丸め処理のいずれか一方を適用して、前記合算結果の1/2を演算して整数化し、この演算結果を前記DC変換係数として出力するDC変換係数生成部と、
前記4つの入力データ中の1つの入力データと、前記DC変換係数生成部で得られたDC変換係数との差分値を中間データとして生成する中間データ生成部と、
該中間データ生成部で生成された中間データを、前記1つの入力データを除く3つの入力データそれぞれに加算もしくは減算して、3つの整数のAC変換係数を生成するAC変換係数生成部とを備え、
前記DC変換係数生成部で生成されたDC変換係数、及び、前記AC変換係数生成部で生成された3つのAC変換係数を、ロスレスアダマール変換結果として出力することを特徴とする。
本発明によれば、ロスレスアダマール変換係数の生成において、DC変換係数の生成とAC変換係数の生成とを分け、DC変換係数を先に生成し、該DC変換係数をAC変換係数の生成に利用することにより、加減演算の回数を最小にすると共に、小数点データを整数化する丸め処理の回数を削減することが可能になる。また、コンピュータプログラムにより実現する場合には、マイクロプロセッサが有するSIMD命令の制約下において、レジスタ保持データのコピー回数を削減することも可能になる。この結果、ロスレスアダマール変換処理におけるトータルの処理ステップ数や、ロスレスアダマール変換処理装置における回路規模の削減を図ることができる。
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
[第1の実施形態]
本発明の第1実施形態におけるデータ変換装置の回路構成を図1に示す。同図において、101乃至104は、整数表現された4つの入力データD0,D1,D2,D3を入力するための端子である。106は該4つのデータを合算する4入力の合算器である。108は合算器106の合算結果(加算結果)を1ビット右シフトするシフタである。111は中間データを生成するための減算器である。112乃至114は、生成された中間データを、入力データ中のD1、D2、D3それぞれに加算する加算器である。そして、121乃至124はロスレスアダマール変換した結果(整数データY0、Y1、Y2、Y3))を出力する端子である。なお、減算器111、加算器112乃至114はいずれも整数演算を行なうものである。
詳細は以下の説明から明らかになるが、参照番号500は、入力した4つのデータから周波数空間上のDC変換係数生成部として機能する。また、参照番号501は、1つの入力データとDC変換係数の差分値を算出し、それを中間データとして出力する中間データ生成部として機能し、参照番号502が周波数空間上のAC変換係数生成部として機能する。
次に、図1の構成の演算内容について説明する。
合算器106は入力端子101〜104から入力される4つのデータD0,D1,D2,D3の全てを加算し合い(合計を演算し)、その合計値(=D0+D1+D2+D3)をシフタ108に出力する。
本実施形態では、複数ビットで構成されるデータXを右方向(下位方向)にmビット分だけシフトすることを、“X>>m”と表現する。シフタ108は、合算器106で算出した合計値を1ビット右シフトした整数値を求める。すなわち、シフタ108は“(D0+D1+D2+D3)>>1”を演算し、その演算結果の整数値を、ロスレスのDC変換係数を表わす出力データY0として端子121から出力する。
Y0=(D0+D1+D2+D3)>>1 …(6)
ここで、端子121から出力されるDC変換係数(出力データY0)は、小数点以下の値が切り捨てられていることになることに注意されたい。すなわち、出力データY0であるDC変換係数には、最大で“−0.5”の丸め誤差が重畳することになる。
一方、減算器111は、入力端子101に入力されたデータD0から、シフタ108からの値(データY0)を減じ、その結果を中間データとして生成する。生成された中間データは第1の加算器112、第2の加算器113、及び、第3の加算器114それぞれに供給される。
先に説明したように、算出したDC変換係数には、最大“−0.5”の丸め誤差が重畳している。減算器111は、この丸め誤差を含んだDC変換係を、入力データD0から減じるわけであるから、減算器111が算出する中間データには、最大で、正負の符号が反転した“+0.5”の丸め誤差が重畳することになる。このような重畳誤差が発生する丸め処理は、この場合、切り上げ処理しかない。すなわち、減算器111が算出する中間データの値をMとしたとき、その処理は切り上げ処理結果と等価の値となり、次式で示される値となる。
M=D0−{(D0+D1+D2+D3)>>1}
=(D0−D1−D2−D3+1)>>1
ここで、括弧の中の“+1”は中間データの値Mが切り上げデータであることを示している。
第1乃至第3の加算器(参照符号112乃至114)は、上記のようにして算出された中間データを、入力データD1,D2,D3の各々に加算し、それぞれの加算結果をAC変換係数を示す出力データY1、2、Y3として端子122〜124から出力する。
当然、前記中間データに重畳する最大+0.5の丸め誤差は、前記第1乃至第3の加算器を通して各データに重畳される。すなわち、端子122〜124から出力されるAC変換係数を示す出力データY1、Y2、Y3には、最大で“+0.5”の丸め誤差が重畳していることになり、これらAC変換係数も切り上げ処理されたものと等価である。
つまり、AC変換係数を示す出力データY1乃至Y3は次のように表わすことができる。
Y1={(D0−D1−D2−D3+1)>>1}+D1
= (D0+D1−D2−D3+1)>>1
Y2={(D0−D1−D2−D3+1)>>1}+D2
= (D0−D1+D2−D3+1)>>1
Y3={(D0−D1−D2−D3+1)>>1}+D3
= (D0−D1−D2+D3+1)>>1 …(7)
上記式(6)及び式(7)の出力結果は、先に示した式(5)に示したアダマール変換行列T4による、ロスレスアダマール変換結果に対応していることが理解できよう。すなわち、実施形態では、切り捨て処理された変換係数の数が奇数個(1個)で、切り上げ処理された変換係数の数も奇数個(3個)なので、この構成で得られるアダマール変換係数はロスレス変換係数になっている。
なおかつ、DC変換係数だけが他の変換係数と異なる丸め処理になっているため、同一の丸め処理で逆変換が可能である。すなわち、図1の構成で逆変換することも可能である。
以上説明したように、本第1の実施形態におけるデータ変換装置は、ロスレス4点アダマール変換装置として機能することになる。
図2Aに示す構成は、図1の構成における合算器106とシフタ108との間に、合算器106の合算結果に“1”を加算する+1回路131を設けた変形例である。この結果、+1回路131は、入力データの合計値に“1”を加算し、その結果をシフタ108に出力する。これにより、出力データY0で表わされるDC変換係数は小数点以下を切り上げた値になる。逆に、他の3つのAC変換係数(出力データY0乃至Y3)は、小数点以下が切り捨て処理された値となる。図1の場合と同様、図2Aの構成で得られるアダマール変換係数もロスレス変換係数であり、同じ構成で逆変換もできる。
また、図2Aと等価な構成を図2Bに示す。図2Bにおける中間データを生成する減算器211の減算入力が図2Aの減算器111と異なる。すなわち、図2Bの減算器211は、シフタ108からの出力値から、入力データD0を減算し、その結果を中間データとして出力する。従って、図2Bの減算器211の出力である中間データの正負の符号は、図2Aの減算器111とは逆となる。よって、図2Bにおける減算器212乃至214は、図2Aの加算器112乃至114に適用するべく、入力データD1,D2,D3それぞれから中間データを減算して、それら減算結果を整数のAC変換係数として出力する。
以上説明してきたロスレスアダマール変換装置に係る処理を、マイクロプロセッサ(CPU)で行う場合、複数ブロックからのデータを並列に処理するための機構を組み込むことで、高速な変換処理が可能である。
これは、64ビット又は128ビット長のマイクロプロセッサ内部のレジスタを4分割あるいは8分割して、8または16ビットデータを並列に処理するためのSIMD(Single Instruction stream Multiple Data stream)型命令で行うことが可能である。SIMD型命令そのものは、近年のCPUでは普通に組み込まれているものである。
一般に、SIMD型命令は2オペランド形式であり、ソースレジスタとデスティネーションレジスタ間の演算結果がデスティネーションレジスタに格納される。
その条件の元で、図2Aの構成に対応するソフト処理の評価すると、図5に示す手順となる。図示において、左側がステップを示し、右側がオペレーションを示している。図5に示すように、この一連の処理は10ステップで実現できる。代入文を減らすために、入力データD0をレジスタtにコピーし(ステップ1)、該入力データD0を格納していたレジスタでDC変換係数を演算している。前記中間データはレジスタt上に生成している。なお、図5において、D0+=D1は、D0←D0+D1を表わしており、D0とD1の加算結果で、D0を保持していたレジスタを更新することを示している。同様に、“D0>>=1”は、D0を保持するレジスタの1ビット右シフト(最上位には0が格納される)を示している。
以上説明したように、本第1の実施形態におけるデータ変換装置は、ロスレス4点アダマール変換装置として機能することが理解できよう。
因に、比較のため、図9の構成に対応するソフト処理の処理手順を示すと図10のようになる。図10に示すように、一連の処理は最低でも13ステップを要する上に、変換データを一部置換する必要がある。また、この13ステップに該置換は含まれていない。
従来技術では、丸め処理を2つもしくは4つのデータに対して行う必要があったが、本実施形態の処理では1つのデータで済み、データの加減算回数も7回と少なく、データコピー回数も1回しかない。すなわち、図5に示す処理手順は、丸め、加減算、コピー処理のすべて項目において、図9と比較して、更に少ない回数でロスレスアダマール変換処理を行なうことが可能であることを示している。
なお、上記第1の実施形態において、例えば図1の構成では、シフタ108が1ビット右シフトすることで、合算結果の小数点以下を切り捨てる1/2処理を行なったが、これに限定されるものではない。例えば、シフタ108の代わりに、小数点以下を有効した1/2演算器、及び、この1/2演算器の結果の小数点以下を切り上げる丸め処理部を設けても良い。この場合、1/2演算器は合算器106からの合算結果の1/2を演算し、小数点以下を含む値を丸め処理部に出力する。丸め処理部は、1/2演算器からの値に“0.5”を加算した後に小数点以下を切り捨てて整数化し、その結果を減算器111に出力すれば良い。
[第2の実施形態]
第2実施形態におけるデータ変換装置の回路構成を図3に示す。この図3の構成はハードウェアで処理する際の遅延時間の削減が図れる点で意味がある。同図において、301は4つの入力データ中の3つのデータD1,D2,D3を合算する3入力の合算器、302は後段の小数点以下の切り上げ(丸め処理)を行なうために“1”を加える+1加算器である。303は+1加算器302からの合算結果に、入力データD0を加算する加算器である。305は、+1加算器302からの合算結果から、入力データD0を減算する第1の減算器である。307は、加算器303からの出力値を1ビット右シフトし、DC変換係数を表わす出力データY0を生成する第1のシフタである。309は、減算器305からの出力値を1ビット右シフトし、そのビットシフト結果を中間データとして生成する第2のシフタである。312乃至314は、第2のシフタ309で生成された中間データを、3つの入力データD1,D2,D3各々から減算する第2、第3、第4の減算器である。データ入力端子および出力端子は、図2Aの構成と同じである。
図2Aの構成では、データ入力から出力データY1,Y2,Y3を得るまでの演算の段数は4段である(出力データY0は3段)。1段目は合算器106での演算、2段目は+1加算器131での演算、3段目は減算器111での演算、4段目は加算器112乃至114での演算である。
ハードウェアで1ビット右シフト処理を行なう場合、単にデータの信号の配線を1ビット(1本)ずらすだけで良いので、基本的に演算にかかる時間は無視できる。
図3の構成も、入力端子から出力データY1,Y2,Y3を得るまでの演算の段数は図2Aと同じ4段である。但し、1段目の演算で用いる合算器の入力数が、4から3個に減少しているため、その分、演算によるゲート遅延時間を削減できる。
一方、図3と等価の処理をソフトウェア処理で行なう場合、図6のリストに示すように、ビットシフト演算とデータコピーが各々1回増え、12ステップで処理することができる。
[第2の実施形態の変形]
上記の図3の構成を図8の構成に変形しても構わない。図8と図3との大きな違いは、図3における第2乃至第4の減算器(参照符号312乃至314)を全て加算器802乃至804に置き換えた点と、以下の(1)、(2)の変更である。
(1)図3の減算器305は、+1加算器302の出力値から、入力データD0を減じたが、図8の減算器305は、入力データD0から、加算器301の出力値を減じる。つまり、図8の減算器305の出力値は、図3の減算器305の出力値の正負の符号が反転する。
(2)DC変換係数とAC変換係数の丸め処理が異なるようにするため、一方が切り捨て処理なら他方は切り上げ処理にする。このため、図8の構成では、DC変換係数が切り上げ、AC変換係数が切り捨て処理になるようにする。すなわち、加算器303と第1シフタ307との間に+1加算器801を配置する。
上記変更(1)(2)を加えることにより、出力データY0乃至Y3はロスレスアダマール変換係数となる。
[第3の実施形態]
第3実施形態におけるデータ変換装置の回路構成を図4に示す。同図において、401は4つの入力データの内、2つのデータD1,D2を加算する第1の加算器、402〜404は入力データD1,D2,D3各々に入力データD0を加算する第2乃至第4の加算器である。つまり、これら加算器402乃至404が、4つの整数の入力データから2つのデータの和を3つ生成する加算データ生成部として機能する。
405は第1の加算器401の出力値に“1”を加算する+1加算器である。407は+1加算器405の加算結果に第4の加算器404の出力値を加算する第5の加算器である。409は加算器407の加算結果を1ビット右シフトするシフタである。そして、412乃至414は、第2乃至第4の加算器402乃至404の出力値の各々からシフタ409からの出力値を減算する第1乃至第3の減算器である。データ入力および出力端子は、図1の構成と同じである。
図4の構成も、入力端子から出力データY1、Y2,Y3を得るまでの演算の段数は同じ4段である。すなわち、1段目が第1乃至第4の加算器401乃至404による演算、2段目が+1加算器405による演算、3段目が第5の加算器407による演算、そして、4段目が第1乃至第3の減算器412乃至413による演算である。1段目の演算を行なう第1乃至第4の加算器は、それぞれ2入力で済むため、さらに遅延時間が削減できる。
従って、1段目の第1乃至第4の加算器401乃至404が第1の加算処理部505として機能し、2段目の+1加算器405が第2の加算処理部506として機能する。そして、3段目の加算器407及びシフタ409が、DC変換係数生成部501として機能し、4段目の減算器412乃至414がAC変換係数生成部502として機能することになる。
ソフトウェア処理では、図7のリストに示すように、12ステップで処理することができる。第2の実施形態である図6のリストに対し、加減算が1回増えているが、ビットシフト演算が1回減り、同じ12ステップで処理できる。
[第4の実施形態]
第4実施形態におけるデータ変換装置の回路構成を図11に示す。同図において、1002乃至1004は、2つの入力データの和を計算する加算器である。加算器1002は、第1の入力データD0を第2の入力データD1に加算し、その結果を第1の中間データとして出力する。加算器1003は、第2の入力データD1を第3の入力データD2に加算し、その結果を第2の中間データとして出力する。そして、加算器1004は、第2の入力データD1を第4の入力データD3に加算し、その結果を第3の中間データとして出力する。つまり、これら加算器1002乃至1004が、4つの整数の入力データから2つのデータの和を3つ生成する加算データ生成部として機能する。
1012乃至1014は、加算器1002〜1004の出力(第1乃至第3の中間データ)と整数化したDC変換係数との間の減算を行う減算器である。1010は、外部からの制御信号により、“1”または“0”を加算する+1加算器である。その他の構成要素は、図1と同じであるため、同一の番号を付し、説明を省略する。なお、減算器1012は、加算器1002からの第1の中間データから、シフタ108からの値を減じ、その結果を第1のAC変換係数として出力する。これに対し、減算器1013及び1014は、シフタ108からの値から、加算器1003、1004からの第2,第3の中間データを減じ、その結果を第2,第3のAC変換係数として出力する点に注意されたい。このようにして、第1乃至第3のAC変換係数が得られる。
本第4の実施形態の特徴は、3つのAC変換係数の内、2つのAC変換係数(データY2、Y3)を、整数化したDC変換係数(シフタ108の出力値)から、2つのデータの和を減算することによって生成する点にある。
これにより、3つのAC変換係数の内、1つのAC変換係数、すなわち端子122から出力するAC変換係数を示すデータY1だけ、丸め処理の内容が他の3つの変換係数と異なっている。
すなわち、+1加算器1010において、合算器106からの値に“1”を加算するようにした場合、出力データY0、Y2、Y3は、小数点以下切り上げの丸め処理を行なった結果となり、出力端子122からの出力データY1のAC変換係数のみが、小数点以下が切り捨ての丸め処理になる。
一方、+1加算器1010で加算する値を“0”に変えると、今度は出力端子122からの出力データY1で表わされるAC変換係数のみが、小数点以下の切り上げの丸め処理結果となり、他の3つの変換係数はいずれも小数点以下の切り捨て処理結果となる。
いずれの場合も、奇数個のデータを切り上げ処理し、残りの奇数個のデータを切り捨て処理しているため、変換結果は可逆性を有するロスレス変換係数になる。
+1加算器1010において、“1”を加算してロスレス変換した場合、逆変換の時に該加算器で“0”を加算し、逆に、“0”を加算してロスレス変換した場合、逆変換の時に“1”を加算すれば、元のデータを完全に復元できる。
<第4の実施形態の変形>
第4実施形態の変形例を図12と図13に示す。構成要素としては、図11と基本的に同じであるため、一方の入力先が異なる加算器1002〜1004についても、図11と同じ番号を付して用いている。
図12、図13と図11との差は、丸め処理が1つだけ異なるAC変換係数に違いがある点である。
図11では、丸め処理が1つだけ異なるAC変換係数は端子122から出力する変換結果であったが、図12では出力端子123、図13では出力端子124から出力するAC変換係数がそれに対応する。
各々、+1加算器1010において、“1”を加算してロスレス変換した場合、逆変換の時に該加算器で“0”を加算し、逆に、“0”を加算してロスレス変換した場合、逆変換の時に“1”を加算すれば、元のデータを完全に復元できる。
図12、図13の構成が、図11の単なる入力の入れ替えによる変形であるのは容易に理解できる。すなわち、図11における4つの入力データの並びを上から下に向かう順に{D0,D1,D2,D3}と表現すると、図12のそれは{D0,D2,D1,D3}又は{D0,D2,D3,D1}の順に入力した場合に対応する。また、図13の構成は{D0,D3,D1,D2}又は{D0,D3,D2,D1}の4つのデータを入力した場合に対応する。
なお、本実施形態で説明した各種ロスレスアダマール変換装置の可逆性は、先に示した特許文献1における丸め処理との同一性を根拠にしているが、本実施形態に基づく変換・逆変換装置の一構成において、変換の可逆性を比較的容易に示すことができる。
その構成を図14に示し、変換の可逆性を簡単に説明する。説明の都合上、図14は同一構成の順変換装置1401と逆変換装置1402を縦属接続しており、各変換装置内部の構成要素を区別するため、逆変換装置側の構成要素には参照番号の後に文字“r”を付している。
図14における逆変換装置1402の4つ出力端子1411乃至1414に出力される出力データが、順変換装置1401への4つの入力端子101乃至104に入力されるデータD0,D1,D2,D3と同じになることを説明して、変換の可逆性を示す。
順変換装置1401及び逆変換装置1402の構成は、次に述べる2つの解釈が可能である。
1つ目の解釈は、前記図4に示した構成から+1回路を取り除き、DC変換係数を計算するための2つの加算器401,407を1つの加算器106にまとめた構成である。
2つ目の解釈は、前記図1に示した構成において、入力データD0からDC変換係数を減算した結果を3つの入力データD1,D2,D3各々に加算する演算を、該3つの入力データ各々へ入力データD0を加算してDC変換係数を減算するようにした構成である。
逆変換装置1402の4つの出力データが、順変換装置1401への4つの入力データD0,D1,D2,D3と同じになることを示すために、順変換装置1401内の破線1405上の内部データE0,E1,E2,E3に着目する。
まず、順変換装置1401内でE1,E2,E3の各データからE0が減算される。このE0は逆変換装置1402内の加算器402r乃至405rで前記減算結果にそれぞれ加算される。このため、逆変換装置1402内の3つの加算器402r、403r、404rの出力は各々、E1,E2,E3に戻ることが容易に分かる。
次に、順変換装置1401への3つの入力データD1,D2,D3に別の入力データD0を加算した結果が前記内部データE0,E1,E2,E3である。よって、前記逆変換装置1402内の加算器402r乃至404rの出力データであるE1,E2,E3各々からD0を減算できれば、D1,D2,D3に戻せ、それを逆変換結果として出力することができる。
したがって、逆変換装置1402内の3つの減算器412r、413r、414rから共通に減算するデータG0がD0であることを示せれば、D1,D2,D3データの可逆性が示せることになる。
そもそもデータG0は端子1411からD0として出力するべきデータであるため、変換と逆変換装置の処理工程を厳密にトレースすれば、データG0がD0なるであろうことは容易に想像できる。もちろん、そうなることを厳密に示す。
以下では、G0のビットシフト前の内部データであるF0を、まず逆変換装置の入力データの和で表し、その式を変形して、F0を入力データD0,D1,D2,D3のみで表現し直し、その後に、G0=D0になることを示す。
F0=E0+(E1−E0)+(E2−E0)+(E3−E0)
=E1+E2+E3−2*E0
=(D1+D0)+(D2+D0)+(D3+D0)−2*E0
=3*D0+D1+D2+D3−2*E0
=3*D0+D1+D2+D3−2*((D0+D1+D2+D3)>>1)
さて、1ビット右シフトして、その結果を2倍すると、シフト前の値が奇数なら−1され、偶数なら値は変化しない。よって、上記括弧内の値は−1または+0されることになる。これを−0.5±0.5と表現すると、F0は次のようになる。
F0=3*D0+D1+D2+D3−(D0+D1+D2+D3−0.5±0.5)
=2*D0+0.5±0.5
この結果を用いることによって、以下に示すように、G0=D0になる。
G0=F0>>1
=(2*D0+0.5±0.5)>>1
括弧内の0.5±0.5は整数のLSB(最下位ビット)を表し、1ビット右シフトによって切り捨てられる。よって、
G0=D0
になる。すなわち、前記順変換装置1401と逆変換装置1402の可逆性を示せたことになる。
先に示した非特許文献1に記載されているように、ロスレスアダマール変換を用いると、効率よくロスレスDCT変換を行うことができる。本発明のロスレスアダマール変換を用いれば、さらに効率のよくロスレスDCT変換を行うことが可能である。
該ロスレスDCTの変換係数を量子化してエントロピー符号化すれば、JPEGと互換性のある符号化を行うことができ、量子化しないで符号化すれば、ロスレス符号化することが可能である。
量子化しないで符号化した場合は、復号時、エントロピー復号後にロスレスの逆変換を行えば、元の画像データを完全に復元することができる。ロスレスの逆変換を行わず、一般のDCT逆変換処理を施すと、元のデータに近い画像データに復元できる。
本発明において、入力データは一貫して整数としてきたが、該入力データは固定小数点データでもよいことは、明白である。つまり、小数点以下がnビットを有する入力データを本発明に基づいてロスレス変換した場合、ロスレス変換係数も、小数点以下nビットを有するデータとなる。
小数点の位置は、データの解釈の問題であり、入出力データ間で同じように小数点を移動させれば、どこに小数点があっても構わないことも明らかである。
また、上記実施形態の記載からもわかるように、各実施形態における装置と等価の処理をコンピュータプログラムでもって実現しても構わないから、本願発明は当然そのようなコンピュータプログラムをもその範疇とする。また、通常、コンピュータプログラムは、CD−ROM等のコンピュータ可読記憶媒体に格納されており、それをコンピュータ読取り装置(CD−ROMドライブ)にセットし、システムにコピーもしくはインストールすることで実行可能になる。それ故、本発明はかかるコンピュータプログラムをもその範疇とすることも明らかである。
第1の実施形態におけるロスレス4点アダマール変換を行なうデータ処理装置の回路構成図である。 第1の実施形態の変形例におけるデータ処理装置の回路構成図である。 図2Aと等価なデータ処理装置の回路構成図である。 第2実施形態におけるデータ処理装置の回路構成図である。 第3の実施形態の変形例におけるデータ処理装置の回路構成図である。 第1の実施形態におけるロスレス4点アダマール変換をコンピュータプログラムで実行する場合の処理ステップを示す図である。 第2の実施形態におけるロスレス4点アダマール変換をコンピュータプログラムで実行する場合の処理ステップを示す図である。 第3の実施形態におけるロスレス4点アダマール変換をコンピュータプログラムで実行する場合の処理ステップを示す図である。 第2の実施形態の変形例におけるデータ処理装置の回路構成図である。 従来のロスレス4点アダマール変換装置の構成を示す図である。 従来のロスレス4点アダマール変換方法の処理ステップを示す図である。 第4の実施形態におけるデータ処理装置の回路構成図である。 第4の実施形態の変形例におけるデータ処理装置の回路構成図である。 第4の実施形態の変形例におけるデータ処理装置の回路構成図である。 実施形態で説明する変換装置の可逆性を説明するための図である。

Claims (8)

  1. 整数表現された4つの入力データを、周波数空間上の、整数で表わされる1つのDC変換係数と3つのAC変換係数に変換し、出力するデータ変換装置であって、
    前記4つの入力データを合算し、小数点以下の切り上げ、もしくは、小数点以下切り捨ての2つの丸め処理のいずれか一方を適用して、前記合算結果の1/2を演算して整数化し、この演算結果を前記DC変換係数として出力するDC変換係数生成部と、
    前記4つの入力データ中の1つの入力データと、前記DC変換係数生成部で得られたDC変換係数との差分値を中間データとして生成する中間データ生成部と、
    該中間データ生成部で生成された中間データを、前記1つの入力データを除く3つの入力データそれぞれに加算もしくは減算して、3つの整数のAC変換係数を生成するAC変換係数生成部とを備え、
    前記DC変換係数生成部で生成されたDC変換係数、及び、前記AC変換係数生成部で生成された3つのAC変換係数を、ロスレスアダマール変換結果として出力することを特徴とするデータ変換装置。
  2. 前記中間データ生成部は、前記4つの入力データ中の1つの入力データから、前記DC変換係数生成部で得られたDC変換係数を減算して得られた値を中間データとして成し、
    前記AC変換係数生成部は、前記中間データを、前記1つの入力データを除く3つの入力データそれぞれに加算して得られた3つの加算結果を、前記AC変換係数として出力することを特徴とする請求項1に記載のデータ変換装置。
  3. 前記中間データ生成部は、前記DC変換係数生成部で得られたDC変換係数から、前記4つの入力データ中の1つの入力データを減算して得られた値を中間データとして成し、
    前記AC変換係数生成部は、前記1つの入力データを除く3つの入力データそれぞれから、前記中間データを減じることで得られた3つの減算結果を、前記AC変換係数として出力する
    ことを特徴とする請求項1に記載のデータ変換装置。
  4. 整数表現された4つの整数で表わされる入力データを、周波数空間上の、整数で表わされる1つのDC変換係数と3つのAC変換係数に変換し、出力するデータ変換装置の制御方法であって、
    DC変換係数生成部が、前記4つの入力データを合算し、小数点以下の切り上げ、もしくは、小数点以下切り捨ての2つの丸め処理のいずれか一方を適用して、前記合算結果の1/2を演算して整数化し、この演算結果を前記DC変換係数として出力するDC変換係数生工程と、
    中間データ生成部が、前記4つの入力データ中の1つの入力データと、前記DC変換係数生成工程で得られたDC変換係数との差分値を中間データとして生成する中間データ生成工程と、
    AC変換係数生成部が、前記中間データ生成工程で生成された中間データを、前記1つの入力データを除く3つの入力データそれぞれに加算もしくは減算して、3つの整数のAC変換係数を生成するAC変換係数生成工程とを備え、
    前記DC変換係数生成工程で生成されたDC変換係数、及び、前記AC変換係数生成工程で生成された3つのAC変換係数を、ロスレスアダマール変換結果として出力することを特徴とするデータ変換装置の制御方法。
  5. 前記中間データ生成工程は、前記4つの入力データ中の1つの入力データから、前記DC変換係数生成工程で得られたDC変換係数を減算して得られた値を中間データとして成し、
    前記AC変換係数生成工程は、前記中間データを、前記1つの入力データを除く3つの入力データそれぞれに加算して得られた3つの加算結果を、前記AC変換係数として出力する
    ことを特徴とする請求項に記載のデータ変換装置の制御方法。
  6. 前記中間データ生成工程は、前記DC変換係数生成部で得られたDC変換係数から、前記4つの入力データ中の1つの入力データを減算して得られた値を中間データとして成し、
    前記AC変換係数生成工程は、前記1つの入力データを除く3つの入力データそれぞれから、前記中間データを減じることで得られた3つの減算結果を、前記AC変換係数として出力する
    ことを特徴とする請求項に記載のデータ変換装置の制御方法。
  7. コンピュータに読み込ませ実行させることで、前記コンピュータを、請求項1乃至3のいずれか1項に記載のデータ変換装置として機能させることを特徴とするコンピュータプログラム。
  8. 請求項7に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
JP2008226378A 2007-10-29 2008-09-03 データ変換装置及びその制御方法 Expired - Fee Related JP4311759B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008226378A JP4311759B2 (ja) 2007-10-29 2008-09-03 データ変換装置及びその制御方法
PCT/JP2008/068513 WO2009057439A1 (en) 2007-10-29 2008-10-06 Data transform apparatus and control method thereof
US12/521,204 US7912318B2 (en) 2007-10-29 2008-10-06 Data transform apparatus and control method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2007280941 2007-10-29
JP2008226378A JP4311759B2 (ja) 2007-10-29 2008-09-03 データ変換装置及びその制御方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2009070970A Division JP5004987B2 (ja) 2007-10-29 2009-03-23 データ変換装置及びその制御方法

Publications (2)

Publication Number Publication Date
JP2009135891A JP2009135891A (ja) 2009-06-18
JP4311759B2 true JP4311759B2 (ja) 2009-08-12

Family

ID=40867319

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2008226378A Expired - Fee Related JP4311759B2 (ja) 2007-10-29 2008-09-03 データ変換装置及びその制御方法
JP2009070970A Expired - Fee Related JP5004987B2 (ja) 2007-10-29 2009-03-23 データ変換装置及びその制御方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2009070970A Expired - Fee Related JP5004987B2 (ja) 2007-10-29 2009-03-23 データ変換装置及びその制御方法

Country Status (2)

Country Link
US (1) US7912318B2 (ja)
JP (2) JP4311759B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4933405B2 (ja) * 2007-11-13 2012-05-16 キヤノン株式会社 データ変換装置及びその制御方法
TWI462057B (zh) * 2009-12-01 2014-11-21 Mstar Semiconductor Inc 基於哈達瑪轉換之影像壓縮電路及方法
JP5546329B2 (ja) * 2010-04-14 2014-07-09 キヤノン株式会社 データ変換装置
US8638863B1 (en) 2010-05-18 2014-01-28 Google Inc. Apparatus and method for filtering video using extended edge-detection
US9210442B2 (en) 2011-01-12 2015-12-08 Google Technology Holdings LLC Efficient transform unit representation
US9380319B2 (en) 2011-02-04 2016-06-28 Google Technology Holdings LLC Implicit transform unit representation
US9219915B1 (en) 2013-01-17 2015-12-22 Google Inc. Selection of transform size in video coding
US9967559B1 (en) 2013-02-11 2018-05-08 Google Llc Motion vector dependent spatial transformation in video coding
US9544597B1 (en) 2013-02-11 2017-01-10 Google Inc. Hybrid transform in video encoding and decoding
US9674530B1 (en) 2013-04-30 2017-06-06 Google Inc. Hybrid transforms in video coding
US9565451B1 (en) 2014-10-31 2017-02-07 Google Inc. Prediction dependent transform coding
US9769499B2 (en) 2015-08-11 2017-09-19 Google Inc. Super-transform video coding
US10277905B2 (en) 2015-09-14 2019-04-30 Google Llc Transform selection for non-baseband signal coding
US9807423B1 (en) 2015-11-24 2017-10-31 Google Inc. Hybrid transform scheme for video coding
US11122297B2 (en) 2019-05-03 2021-09-14 Google Llc Using border-aligned block functions for image compression

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5818970A (en) * 1991-04-26 1998-10-06 Canon Kabushiki Kaisha Image encoding apparatus
JP3149271B2 (ja) * 1992-06-19 2001-03-26 キヤノン株式会社 画像通信装置
US6553143B2 (en) * 1992-06-30 2003-04-22 Canon Kabushiki Kaisha Image encoding method and apparatus
US6408102B1 (en) * 1993-12-20 2002-06-18 Canon Kabushiki Kaisha Encoding/decoding device
JP3227292B2 (ja) * 1993-12-20 2001-11-12 キヤノン株式会社 符号化装置、符号化方法、復号化装置、復号化方法、符号化復号化装置及び符号化復号化方法
JP3332619B2 (ja) * 1994-11-29 2002-10-07 キヤノン株式会社 復号装置およびその方法
JPH1093827A (ja) * 1996-09-11 1998-04-10 Canon Inc 画像処理方法とその装置
JP4683678B2 (ja) * 1998-07-03 2011-05-18 忠弘 大見 画像信号処理方法、画像信号処理システム、記憶媒体及び撮像装置
JP3839974B2 (ja) * 1998-10-06 2006-11-01 キヤノン株式会社 符号化装置
JP2000115783A (ja) * 1998-10-06 2000-04-21 Canon Inc 復号化装置及び方法
JP2000115782A (ja) * 1998-10-06 2000-04-21 Canon Inc 符号化装置及び方法及び記憶媒体
JP2000115770A (ja) * 1998-10-06 2000-04-21 Canon Inc 符号化装置及び方法
US6865299B1 (en) * 1999-07-27 2005-03-08 Canon Kabushiki Kaisha Coding apparatus and method
US6952501B2 (en) * 2000-02-24 2005-10-04 Canon Kabushiki Kaisha Image processing apparatus, image encoding apparatus, and image decoding apparatus
US6996593B2 (en) * 2000-10-23 2006-02-07 Canon Kabushiki Kaisha Filter processing apparatus and its control method, program, and storage medium
EP1271926B1 (en) * 2001-06-18 2015-08-12 Canon Kabushiki Kaisha Image processing method, apparatus and computer program for compression-encoding
EP1292153B1 (en) * 2001-08-29 2015-08-19 Canon Kabushiki Kaisha Image processing method and apparatus, computer program, and storage medium
JP3796432B2 (ja) * 2001-10-31 2006-07-12 キヤノン株式会社 フィルタ処理装置およびフィルタ処理方法
US7194140B2 (en) * 2001-11-05 2007-03-20 Canon Kabushiki Kaisha Image processing apparatus and method which compresses image data of each region using a selected encoding method
US7188132B2 (en) * 2001-12-25 2007-03-06 Canon Kabushiki Kaisha Hadamard transformation method and apparatus
JP3754957B2 (ja) 2001-12-25 2006-03-15 キヤノン株式会社 アダマール変換処理方法及びその装置
JP3902968B2 (ja) * 2002-03-26 2007-04-11 キヤノン株式会社 画像処理装置及びその制御方法及びコンピュータプログラム及び記憶媒体
US7227998B2 (en) * 2002-06-11 2007-06-05 Canon Kabushiki Kaisha Image processing apparatus, control method of the same, computer program, and computer-readable storage medium
JP3902990B2 (ja) * 2002-07-02 2007-04-11 キヤノン株式会社 アダマール変換処理方法及びその装置
JP4366250B2 (ja) * 2003-06-23 2009-11-18 キヤノン株式会社 データ変換処理装置及びプログラム
JP4378245B2 (ja) * 2004-08-23 2009-12-02 キヤノン株式会社 データ変換装置及び方法
JP2007037049A (ja) * 2005-07-29 2007-02-08 Canon Inc 画像符号化装置及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JP4697967B2 (ja) * 2006-03-02 2011-06-08 キヤノン株式会社 画像符号化装置及びその制御方法
JP2008072624A (ja) * 2006-09-15 2008-03-27 Canon Inc 画像符号化装置及びその制御方法

Also Published As

Publication number Publication date
JP2009135891A (ja) 2009-06-18
JP5004987B2 (ja) 2012-08-22
US20100104215A1 (en) 2010-04-29
JP2009189029A (ja) 2009-08-20
US7912318B2 (en) 2011-03-22

Similar Documents

Publication Publication Date Title
JP4311759B2 (ja) データ変換装置及びその制御方法
JP5113067B2 (ja) 信号およびデータ処理のための効率的な無乗算計算
JP3902990B2 (ja) アダマール変換処理方法及びその装置
US7188132B2 (en) Hadamard transformation method and apparatus
JP3796432B2 (ja) フィルタ処理装置およびフィルタ処理方法
JP4933405B2 (ja) データ変換装置及びその制御方法
JP4366250B2 (ja) データ変換処理装置及びプログラム
JP3754957B2 (ja) アダマール変換処理方法及びその装置
KR101219411B1 (ko) 데이터 변환장치 및 그 제어 방법
JP4236266B2 (ja) データ変換装置およびその方法
KR20130137951A (ko) 초고해상도 영상 코덱을 위한 역변환 방법
JP5546329B2 (ja) データ変換装置
WO2009057439A1 (en) Data transform apparatus and control method thereof
JPH0646269A (ja) 静止画像データの伸長方法、圧縮方法及びそのための対応装置
JPH0746136A (ja) 音響又は画像変換プロセッサ、音響又は画像データ処理装置、音響又は画像データ処理方法、算術プロセッサ、及びデータプロセッサ
JP2007079972A (ja) 逆変換回路
JP2017055270A (ja) 情報処理装置及び情報処理システム
JP4378407B2 (ja) データ変換処理装置及びその方法
JP5451171B2 (ja) データ変換処理装置およびデータ変換処理方法
JP2007299221A (ja) データ処理装置
JPH09121286A (ja) 画像データの圧縮方法及び装置
JP2011257806A (ja) データ変換方法、変換装置および画像符号化装置
JP2006060553A (ja) 量子化器及び逆量子化器
JPH05225224A (ja) 離散コサイン変換器
KR20030049852A (ko) 역 이산 코사인 변환(idct) 장치

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090323

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090323

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20090323

TRDD Decision of grant or rejection written
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20090413

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090417

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: 20090511

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

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4311759

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130522

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140522

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees