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

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

Info

Publication number
JP4933405B2
JP4933405B2 JP2007294881A JP2007294881A JP4933405B2 JP 4933405 B2 JP4933405 B2 JP 4933405B2 JP 2007294881 A JP2007294881 A JP 2007294881A JP 2007294881 A JP2007294881 A JP 2007294881A JP 4933405 B2 JP4933405 B2 JP 4933405B2
Authority
JP
Japan
Prior art keywords
data
conversion
path
unit group
output
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
JP2007294881A
Other languages
English (en)
Other versions
JP2009124353A (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 JP2007294881A priority Critical patent/JP4933405B2/ja
Priority to US12/266,338 priority patent/US8107767B2/en
Publication of JP2009124353A publication Critical patent/JP2009124353A/ja
Application granted granted Critical
Publication of JP4933405B2 publication Critical patent/JP4933405B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Complex Calculations (AREA)

Description

本発明は、整数データを可逆アダマール変換し、変換結果を出力するデータ変換技術に関するものである。
画像、特に多値画像は非常に多くの情報を含んでおり、蓄積のためには膨大なメモリを必要とし、伝送には多くの時間を要するという問題がある。このため画像の蓄積、伝送に際しては、画像の持つ冗長性を除く処理、或いは画質の劣化が視覚的に認識し難い程度で画像の内容を変更することによって、そのデータ量を削減する高能率符号化が用いられる。
例えば、静止画像の国際標準符号化方式としてISOとITU−Tにより勧告されたJEPGでは、画像データをブロックごと(8×8画素)に離散コサイン変換(DCT)して、DCT変換係数を得る。そして、そのDCT変換係数を各々量子化し、さらにエントロピー符号化するという処理手順を経ることで、画像データを圧縮している。このDCTを利用する圧縮技術として、JPEG以外にも、H261,MPEG−1/2/4等が知られている。
このDCT変換の一部の処理として、あるいは、画像データを変換する処理としてアダマール変換がある。アダマール変換は変換行列の要素が1又は−1のみから成る直交変換で、加算と減算のみで実現できるもっともシンプルな直交変換である。
2点アダマール変換の変換行列H2は、以下の数式(1)ように定義される。
Figure 0004933405
一般的なN(=2n)点アダマール変換行列HNは、N/2点アダマール変換行列HN/2と上記2点アダマール変換行列H2との間のクロネッカー積で再帰的に定義することができる。
Figure 0004933405
例えば、上記定義から、4点アダマール変換行列は次のようになる。
Figure 0004933405
この変換行列はナチュラル型と呼ばれるもので、基底ベクトルがシーケンシの順番に並んでいない。基底ベクトルの置換を繰り返して、2行目の基底ベクトルを4行目に移動し、元の3、4行目の基底ベクトルをそれぞれ1つ上の行に移動すると、基底ベクトルの順序がシーケンシ順序の変換行列WH4となる。
Figure 0004933405
上記変換行列はウォルシュ型あるいはウォルシュアダマール変換行列と呼ばれている。アダマール変換は可逆な直交変換であることが知られており、上記ナチュラル型、ウォルシュ型のいずれも可逆な変換が可能である上、変換行列が対称行列になっている。
ナチュラル型のアダマール変換行列H4の基底ベクトルを置換して得られる対称行列は、ウォルシュ型以外にも存在する。対角成分が+1といった特徴を持つ次に示す変換行列T4である。
Figure 0004933405
本発明では、この型のアダマール変換を用いる例を説明する。
先に説明したように、アダマール変換は可逆変換であると一般的に言われている。しかしながら、これはあくまで数学的に可逆であるという意味である。すなわち、変換時および逆変換において演算誤差が発生しないことを前提としており、そのためのデータ形式として固定小数点あるいは浮動小数点で演算を行なう必要がある。また、変換処理後の有効桁数をすべて保持する必要もある。
しかし、変換符号化、特に可逆の変換符号化に用いるアダマール変換では、変換処理後に有効桁数を少しでも減らしたい。具体的には、整数の入力のデータを変換処理して発生する小数点以下のデータは、明らかに入力データより増加した桁数(情報)と捉えることができるので、この小数点以下のデータを無くしたい。ところが、この小数点以下のデータを単純に丸め処理してしまうと可逆性は損なわれてしまう。例えば、
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点アダマール変換行列を三角行列に分解して、それを梯子演算に置き換えるといった複雑な手順で実現している。図8がその構成の例である。図示のように、その回路構成は複雑であり、演算の内容も直感的に分かり難い。このため、ソフトウェアやハードウェアに実装する時にミスがあっても発見しにくい上に、演算処理量が少ないというわけでもない。
一方、後者の特許文献1に開示されている方法は、線形アダマール変換した小数点データの変換係数に対し、奇数個のデータの小数点以下を切り上げ処理し、他の奇数個のデータの小数点以下を切り捨て処理するものである。この特許文献1は、丸め処理の仕方を特徴としているのみであって、線形アダマール変換の演算を減らす工夫、丸め処理に要する処理量を減らす工夫などは成されていない。
このように、既存のロスレス4点アダマール変換は、可逆性に重点が置かれていたため、冗長な処理が行われており、変換処理を高速に行うには不向きであった。本発明はまさにかかる点を改善するものである。
かかる課題を解決するため、例えば本発明のデータ変換装置は以下の構成を備える。すなわち、
第1乃至第4の入力端子に入力された、整数表現された4つの変換対象データを、周波数空間上の、整数で表わされる1つのDC変換係数データと3つのAC変換係数データに変換し、当該変換結果を第1乃至第4の出力端子から、ロスレスアダマール変換係数として出力するデータ変換装置であって、
前記4つの変換対象データのうちの1つの変換対象データを入力する第1の入力端子と前記DC変換係数データを出力する第1の出力端子とを結ぶパスを第1のパス、前記1つの変換対象データを除く3つの変換対象データを入力する第2乃至第4の入力端子それぞれと前記3つのAC変換係数データを出力する第2乃至第4の出力端子それぞれとを結ぶパスを第2乃至第4のパスと定義したとき、
前記第1のパス上に設けられ、入力したデータの符号を反転する符号反転器と、
前記第1のパス上に設けられ、入力したデータの値を2倍に拡大する変換器と、
前記第2乃至第4のパス上に設けられ、前記変換器に供給されるデータを、前記3つの変換対象データそれぞれに加算、もしくは、減算する第1の演算器群と、
前記第1のパス上の、前記変換器よりも前記第1の出力端子側に設けられ、前記第1の演算器群による3つの演算結果それぞれを前記変換器の変換結果に対して減算、もしくは加算する第2の演算器群と、
前記第1のパス上の、前記第2の演算器群よりも前記第1の出力端子側に設けられ、前記第2の演算器群の出力を1/2に縮小し、小数点以下を切り上げ若しくは切り捨てることで整数化し、第1の出力端子に向けて出力する丸め処理器と、
前記第2乃至第4のパス上に設けられ、前記丸め処理器と前記第1の出力端子の間のデータを、前記第1の演算器群で得られた3つのデータそれぞれに減算、もしくは加算し、前記第2乃至第4の出力端子に出力する第3の演算器群とを備え、
前記第1の出力端子に供給されたデータをDC変換係数データ、前記第2乃至第4の出力端子に供給された3つのデータをAC変換係数データとして出力することを特徴とする。
本発明によれば、ロスレスアダマール変換係数の演算処理において、着目する1つのデータを他の3つのデータへ加減算する処理と、該着目する1つのデータへ他の3つのデータを加減算する加減演算処理を交互に3回行い、加減演算処理の間に着目する1つのデータに対して丸め処理を行うことにより、ロスレス変換係数を得ることができる。
よって、丸め処理の回数を削減でき、中間データの生成・保存といった処理が必要無いため、少ない処理量でロスレスアダマール変換を実現することができる。
さらに、汎用CPUのSIMD命令の制約下において、レジスタ保持データのコピー回数を削減した。これにより、ロスレスアダマール変換処理におけるトータルの処理ステップ数や、ロスレスアダマール変換処理装置における回路規模の削減を図ることができる。
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
[第1の実施形態]
ロスレス4点アダマール変換を行なう場合、整数表現された4つの変換対象データを、周波数空間上の、整数で表わされる1つのDC変換係数データと3つのAC変換係数データに変換する。このとき、重要な点は、4つの変換係数の内の1つを小数点以下を切り捨てることで得るようにした場合、他の3つのは逆に切り上げることで算出することである。また、1つ変換係数を、その小数点以下を切り上げることで得るようにした場合、他の3つのAC変換係数は逆に切り捨てることである。
本発明の第1の実施形態におけるデータ変換装置(ロスレス4点アダマール変換装置)の回路構成を図1に示し、以下のその制御処理内容を説明する。
同図において、101〜104は整数表現された4つのデータD0,D1,D2,D3(変換対象データ)を入力するため端子(第1乃至第4の入力端子)である。
111乃至113は加算器であって、これら3つの加算器で第1の演算器群1001を構成する。121乃至123は減算器であり、これら3つの減算器で第2の演算器群1002を構成する。131乃至133は減算器であり、これら3つの減算器で第3の演算器群1003を構成する。
D0−Y0を結ぶパスを第1のパスとし、D1−Y1、D2−Y2、D3−Y3を結ぶパスをそれぞれ第2乃至第4のパスとすると、図示の第1の演算器群1001は第2乃至第4のパス上に設けられ、第2の演算器群1002は第1のパス上に設けられ、第3の演算器群は第2乃至第4のパス上に設けられることになる。
106は入力したデータを1ビット左(上位方向)にシフトするシフタである。つまり、このシフタは入力したデータの値を2倍にする乗算器として機能する。107は、減算器123からの演算結果を1ビット右(下位方向)にシフトするシフタ(除算器)である。つまり、このシフタ107は、1/2に縮小し、小数点以下を切り捨てる丸め処理器として機能する。108はシフタ107の処理結果であるデータの符号を反転する符号反転器である。
141乃至144はロスレスアダマール変換した結果をY0乃至Y3として出力する出力端子(第1乃至第4の出力端子)である。
以下、図1の構成における演算内容について説明する。
まず、第1の演算器群1001を構成する3つの加算器111〜113は、第1の入力端子に入力された入力データD0を、第2乃至第4の入力端子に入力された、他の3つの入力データD1,D2,D3に加算し、その加算結果D0+D1,D0+D2,D0+D3を出力する。
シフタ106は、入力データD0を1ビット左シフトし、そのシフト結果を出力する。つまり、シフタ106は、入力データを2倍に拡大する処理(乗算)を行ない、その処理結果を出力する変換器として機能する。なお、以下、整数データXを1ビット左シフトした値を、“X<<1”と表し、1ビット右シフトした値を“X>>1”と表わす。従って、シフタ106からの出力値は“D0<<1”と表わすことができる。このシフタ106による処理は該入力データD0を2倍することと同じであるが、後述するシフタ107による1ビット右シフト処理と対になる処理であるため、本実施形態では1ビット左シフト処理として表現している。
加算器111乃至113による3つの加算結果は、第2の演算器群1002を構成する3つの減算器121〜123にそれぞれ供給される。この結果、第2の演算器群1002の最後に位置する減算器123から出力されるデータは次の通りになる。
(D0<<1)−(D0+D1)−(D0+D2)−(D0+D3)
=2×D0−3・D0−D1−D2−D3
=−D0−D1−D2−D3
上記演算結果は、先に示した式(5)のDC変換係数の“−2倍”の値であることが理解できよう。そこで、上記減算結果を、シフタ107にて1ビット右シフト処理した後、符号反転器108にて正負の符号を反転する。よって、この符号反転器108の出力、すなわち、第1の出力端子141から出力されるDC成分データY0は以下のようになる。
Y0=−((−D0−D1−D2−D3)>>1)
=(D0+D1+D2+D3+1)>>1 …(6)
1ビット右シフト処理では、2で割った時に発生する小数点以下のデータが切り捨てによって丸め処理される。この演算では、小数点以下が1ビットしかないので、1ビット右シフト処理によって発生する、絶対値が最大の誤差(以下、最大丸め誤差と称す)は−0.5である。
丸め処理の後に、符号を反転すると、該切り捨てによって発生した誤差の符号も反転し、上記最大丸め誤差は0.5となる。これは、小数点以下を切り上げた時の丸め誤差と同じである。よって、符号反転後のデータに対して丸め処理を行う場合には、小数点以下を切り上げないと同じ結果にならない。
式(6)において、符号反転後のデータを加算し、+1をした後に1ビット右シフトするのは、上記のように、小数点以下を切り上げる演算にするためである。ここまでの演算によって、小数点以下を切り上げた整数のDC変換係数が得られ、該DC変換係数はデータY0として端子141から出力される。
上記のようにして得られたDC変換係数データY0は、第3の演算器群1003を構成する3つの減算器131乃至133それぞれに出力される。減算器131乃至133は、3つの加算器111乃至113それぞれからの出力値から、DC変換係数Y0を減算し、その結果を第2乃至第4の出力端子に向けて出力する。この減算により、以下の(7)乃至(9)に示すAC変換係数データY1乃至Y3が得られる。
Y1=D0+D1−((D0+D1+D2+D3+1)>>1)
=(D0+D1−D2−D3)>>1 …(7)
Y2=D0+D2−((D0+D1+D2+D3+1)>>1)
=(D0−D1+D2−D3)>>1 …(8)
Y3=D0+D3−((D0+D1+D2+D3+1)>>1)
=(D0−D1−D2+D3)>>1 …(9)
小数点以下を切り上げた整数のDC変換係数を減算するため、該DC変換係数に重畳する最大丸め誤差(0.5)の符号を反転した丸め誤差が、各AC変換係数データに重畳する。
すなわち、各AC変換係数データには、−0.5の最大丸め誤差が重畳する。これは、切り捨て丸め処理によって発生する丸め誤差と同じである。
よって、本実施形態の整数AC変換係数は3つとも、切り捨て処理によって丸める変換式に置き換えられるため、上記(7)乃至(9)に示したように式を変形することができる。
上記式(6)、及び、式(7)乃至(9)の出力結果は、先に示した式(5)に示したアダマール変換行列T4による、ロスレスアダマール変換結果に対応していることが理解できよう。すなわち、実施形態では、切り捨て処理された変換係数の数が奇数個(1個)で、切り上げ処理された変換係数の数も奇数個(3個)なので、この構成で得られるアダマール変換係数はロスレス変換係数になっている。
なおかつ、DC変換係数だけが他の変換係数と異なる丸め処理になっているため、同一の丸め処理で逆変換が可能である。これは、図1の構成でロスレスの逆変換が可能であることを意味する。
以上説明したように、本第1の実施形態におけるデータ変換装置は、ロスレス4点アダマール変換装置として機能することになる。
上記ロスレスアダマール変換を、変換符号化における変換処理として汎用マイクロプロセッサ(CPU)で行う場合、複数ブロックのデータを並列に処理するための並列演算機能を利用することにより、高速な変換処理が可能である。
これは、64ビット、128ビット長のレジスタを4、もしくは8分割して、8または16ビットデータを並列に処理するためのSIMD(Single Instruction stream Multiple Data stream)型命令というもので、近年のCPUでは普通に組み込まれている。
このSIMD型命令は一般的に2オペランド形式であり、ソースレジスタとデスティネーションレジスタ間の演算結果がデスティネーションレジスタに格納される。
その条件の元で、図1の構成のソフト処理ステップ数を評価すると、図9に示すように、12ステップになる。ある変数から別の変数へ値をコピーする代入文が一切無いため、加減算回数が9回となる。
ちなみに、図8の構成に対応するソフト処理は図10のようになり、13ステップを要する上に、変換データを一部置換する必要がある。また、図10に示される13ステップに置換は含まれていない。
従来技術では、丸め処理を2つもしくは4つのデータに対して行う必要があった。これに対し、本実施形態での丸め処理は1つで済み、データをコピー回数も0回である。すなわち、図9に示すソフト処理は、丸め処理やコピー処理等の多くの項目において、これまでよりも少ない演算回数でロスレスアダマール変換を実現することが可能であることが理解できよう。
なお、上記第1の実施形態では、シフタ107が1ビット右シフトすることで、第2の演算器群1002の演算結果の小数点以下を切り捨てる1/2処理を行なったが、これに限定されるものではない。例えば、シフタ107の代わりに、小数点以下を有効した1/2演算器、及び、この1/2演算器の結果の小数点以下を切り上げる丸め処理部を設けても良い。この場合、1/2演算器は第2演算器群1002からの演算結果を1/2を演算し、小数点以下を含む値を丸め処理部に出力する。丸め処理部は、1/2演算器からの値に“0.5”を加算した後に小数点以下を切り捨てて整数化し、その結果を符号反転器108に出力しても構わない。これは、以下に説明する他の変形例、並びに、他の実施形態でも同様である。
また、上記実施形態をハードウェアにて実現する場合であるが、シフタ106は、入力したデータのビット0乃至M(Mは設計に応じて適宜決めればよい)を、出力のビット1乃至M+1の信号線に割り当て、出力のビット0から“0”を出力すれば実現できる。また、シフタ107は、逆に入力したビット1乃至M+1を、出力のビット0乃至Mに割り当てれば良い。つまり、シフタ106、107は、単純に回路の配線で実現できるものであるから、それに要する時間は実際は無視できる。これは、以下に説明する他の変形例や他の実施形態でも、同様なことが言える。
[第1の実施形態の変形例1]
第1の実施形態の構成と等価の構成を図2に示す。図2と図1との違いは、符号反転器108の位置を第1の出力端子側に移動した点と、第3の演算器群1003内の減算器131乃至133の代わりに、加算器131’乃至133’を新たな第3の演算器群1003として用いる点である。
符号反転して減算することと、符号反転しないで加算することは等価である。従って、図2の構成が、図1と等価であることは容易に理解できよう。
[第1の実施形態の変形例2]
図2の構成は、図1における符号反転器108を第1の出力端子側へ移動したものであった。それとは逆に、符号反転器108を入力側へ移動、すなわち、シフタ107の前段へ移動した構成を図3に示す。但し、この図3の構成は図1の構成と等価にはならない。
端子141から出力される整数DC変換係数データY0は、1ビット右シフタ107の出力であるため、該DC変換係数の丸め処理は切り捨てになる。その結果、このDC変換係数を減算して生成される3つのAC変換係数データY1乃至Y3の丸め処理は切り上げになる。
すなわち、図1では、整数DC変換係数データY0は小数点以下を切り上げ、他の3つのAC変換係数データY1乃至Y3は小数点以下を切り捨てしたのに対し、図3では逆の丸め処理の関係になっているので、図1とは等価ではない。しかし、この図3の構成でもロスレス変換が行なえるのは、容易に理解できよう。
[第1の実施形態の変形例3]
上記第2の変形例における符号反転器108をさらに入力側へ移動した構成を図4に示す。同図において、411〜413は減算器、421〜423は加算器である。その他の構成要素は、前記図1における構成要素と共通する機能を有するものは同一の部番を付し説明を省略する。
該図4の構成が、前記図3の構成と等価であることは、これまでの説明から容易に理解できよう。
[第1の実施形態の変形例4]
図4では、DC変換係数データY0は切り捨て、他の3つのAC変換係数Y1乃至Y3は切り上げるものであった。この図4の構成を多少変形することで、図1と同様に、DC変換係数データY0を得るための丸め処理を切り上げ、他の3つのAC変換係数データY1乃至Y3を得るための丸め処理を切り捨てにすることができる。図5はその例である。図5と図4との違いは、図5ではシフタ107の前に+1回路510を配置した点である。
+1回路510は、加算器423による加算結果に“+1”を加算し、その結果をシフタ107に出力する。シフタ107は、この+1回路510からの値を1ビット右シフトするものであるから、端子141から出力する整数DC変換係数データY0は、切り上げ丸め処理されたのと等価になる。他の出力端子から出力する整数AC変換係数データY1乃至Y3は、切り捨てによる丸め処理となる。従って、該図5の構成は、先に示した図1及び図2の構成と等価であることがわかる。
[第1の実施形態の変形例5]
図3、図4と等価な別の構成を図6に示す。図4では、データD0をシフト処理しているが、図6の構成では、D0以外のデータ、すなわち、D0に加算あるいは減算するデータを一まとめにしてからシフト処理を行う。
図示において、611は4つの入力データの内、3つのデータD1,D2,D3を合算する3入力の合算器である。613は、合算器611の出力を1ビット右シフトするシフタである。615は、シフタ613の出力を、入力データD0に加算する加算器である。その他の構成要素は、図4における同じ部番の構成要素と同一であるので、その説明は省略する。図6の構成において、第2の演算器群1002を構成しているのは、上述の611、615である。以下では、図4との比較を行うことによって、図4と図6との等価性を示す。
図4では、入力データD0を符号反転し、その後に1ビット左シフトした。そして、入力データD0以外の他の3つのデータを該データD0に加算した後、該加算結果を1ビット右シフトしている。この処理は、3つの入力データD1、D2、D3を合算器611で合算し、その合算結を1ビット右シフトし、そのシフト結果を入力データD0に加算することでも同じ結果になる。
入力データD0を、その符号反転して1ビット左シフトした値は偶数になるため、合算データの奇偶性(奇数か偶数のどちらであるかということ)と、合算データを入力データD0に加算した値の奇偶性は必ず一致する。
奇偶性が一致する該2つデータは、1ビット右シフト処理で切り捨てられる値は同じであり、丸め誤差も同一になるので、前記加算前後のどちらでシフト処理をしても結果は同じである。
まとめると、図6に示す構成は、図4に以下の2点の変更を加えた構成と解釈できる。
(i)入力データD0を符号反転したデータへ加算する3つのデータD1乃至D3を合算器611で合算する。そして、1ビット右シフト処理を、この合算データのみに行うように変形する。
(ii)上記(i)の変更により、入力データD0を符号反転したデータに対する1ビット左シフト処理と1ビット右シフト処理は相殺されて、まったく意味が無くなるため削除する。
以上より、図6に示す構成は図4に示す構成と等価であることが分かる。
[第1の実施形態の変形例6]
図7は、図6における符号反転器108の位置を入力側から出力側へ移動した構成を示している。入力データD0のデータパス上にある符号反転器108を移動すると、移動前後で、該D0データパスに対する加算と減算は相互に置き換わり、該データパスから他のデータに対する加算と減算も相互に置き換わる。
具体的に、加算器615が減算器721に、減算器411〜413が加算器111〜113に、減算器131〜133が加算器231〜233に置き換わる。
D0データパスの丸め処理について見てみると、1ビット右シフタ613で切り捨てられた値を減算器721で減算したデータは、見かけ上、切り上げ処理したデータになる。このデータを符号反転器108で符号反転することにより、見かけ上、切り捨て処理したデータになって出力される。一方、AC変換係数は符号反転前の切り上げデータを加算して生成するので、切り上げ処理したデータとして出力される。
よって、図7の構成における各出力の丸め処理は、図3の構成から得られるDC・AC変換係数の丸め処理とまったく同じであり、図3に示す構成と等価である。
以上説明した第1の実施形態とその変形例を説明した。上記の7つの構成を総括すると、図1、図2、図5の3つの構成が等価な関係にあり、図3、図4、図6、図7の4つの構成が等価にあることがわかる。
また、符号反転器108が最も出力側にある図2と、該符号反転器が最も入力側にある図4を比較すると、3つの演算器群における各々の演算器は、加算器と減算器がすべて相互に入れ替わっていることが分かる。
[第2の実施形態]
本発明の第2の実施形態における構成を図11に示す。同図において、811〜813は第1の演算器群1001を構成する3つの減算器、821〜823は第2の演算器群1002を構成する3つの加算器、831〜833は第3の演算器群1003を構成する3つの減算器である。図1の第1の演算器群1001、第3の演算器群1003は第2乃至第4のパス上に設けられていて、第2の演算器群1002は第1のパス上に設けられていた。図11では、この配置関係が逆、すなわち、第1の演算器群1001、第3の演算器群1003が第1のパス上に配置され、第2の演算器群1002が第2乃至第4のパス上に設けられている点に注意されたい。
841は第1の演算器群1001による演算結果の最下位ビット(LSB)を加算する加算器である。
その他の構成要素は、図1における構成要素と共通する機能を有するものは同一の部番を付し説明を省略する。
本第2の実施形態では、第2の演算器群1002で演算処理する前に、第1の演算器群1001の演算結果をシフタ107にて1ビット右シフトする。
シフタ107による1ビット右シフトした値は、第1の演算器群1001による演算結果のLSBを切り捨てて、2で割った値と同じである。言い換えると、2で割って切り捨て処理した結果と同じである。
よって、該1ビットシフトした値を加算して生成する本第2の実施形態の3つのAC変換係数には、切り捨てによる丸め誤差“−0.5”が重畳するため、切り捨て処理したデータと同じである。
第3の演算器群1003において、該3つのAC変換係数を全て同じデータから減算すると、各々のAC変換係数に重畳した丸め誤差が、該被減算データに集中する。この集中した丸め誤差の最大丸め誤差は“+1.5”という大きさになる。
1ビット右シフトした後に1ビット左シフトしたデータは、元のデータのLSBを切り捨てた値と同じなので、元のデータが奇数の場合に、前記左シフトしたデータには切り捨て誤差“−1”(最大丸め誤差)が重畳する。
該切り捨て誤差に前記集中丸め誤差を加えると、+0.5が残るので、該データは、最大丸め誤差が“+0.5”となる丸め処理、すなわち、切り上げ処理がなされたと解釈することができる。
その後に符号反転処理が加わるため、後述するLSB加算処理を無視した場合のDC変換係数出力には、最大丸め誤差“−0.5”の丸め誤差が重畳し、見かけ上、切り捨て処理された変換係数データとなる。
よって、DC変換係数の見かけ上の丸め処理は、AC変換係数の丸め処理と同じになり、すべての変換係数が切り捨て処理された状態になっているため、該変換係数はロスレス変換には成り得なくなってしまう。
これを避けるには、出力するDC変換係数に重畳する最大丸め誤差が“+0.5”となるようにして、見かけ上、切り上げ処理したデータに変換する必要がある。
そこで、加算器841は、第1の演算器群1001の演算結果のLSB(1ビット)を、第3の演算器群1003の演算結果に加算し、その結果をDC変換係数として出力する。
第1の演算器群1001の演算結果が偶数の時、1ビット右シフト処理による丸め誤差が発生しないため、出力結果であるロスレス変換係数にも丸め誤差は重畳しない。この場合、LSB=0なので、該LSBをDC変換係数に加算しても何も影響はない。
一方、第1の演算器群1001の演算結果が奇数の時、LSBの値は1となり、変換した係数データには丸め誤差が重畳する。このLSBを利用して、DC変換係数の丸め誤差が切り上げ処理した時と同じになるようにする。
切り捨て処理した変換係数には−0.5、切り上げ処理した変換係数には+0.5の丸め誤差が重畳するため、DC変換係数に重畳する丸め誤差が+0.5になるように、値が“1”であるLSBを加算器841にて、DC変換係数へ加算するわけである。
以上説明した処理により、DC変換係数は切り上げ、3つのAC変換係数は切り捨て処理した場合と同じ丸め誤差となり、ロスレス変換係数になる。
[第2の実施形態の変形例1]
上記第2の実施形態の図11の符号反転器108を入力側に移動した構成を図12に示し、以下、同図を第2の実施形態の変形例1として説明する。
先に説明した第1の実施形態における図2と図4の関係から分かるように、符号反転処理を入力側へ移動することによって、図11における加算器はすべて減算器へ、減算器はすべて加算器に置き換わる。
よって、第1の演算器群1001を構成するのは、加算器911〜913となる。また、第2の演算器群1002を構成するのは減算器921〜923となる。そして、第3の演算器群1003を構成するのは加算器931〜933となる。その他の構成要素は、図1における構成要素と共通である。
シフタ108によって、第1の演算器群1001の演算結果を1ビット右シフトした値は、2で割って切り捨て処理した結果と同じであり、第2の演算器群1002を用いて該シフト結果を減算して生成したAC変換係数の見かけ上の丸め処理は、切り捨てとは逆の切り上げとなる。
図11に示す構成におけるAC変換係数の見かけ上の丸め処理が切り捨てであったので、図12に示す構成は図11に示す構成と等価では無く、丸め処理の関係がまったく逆である。
本変形例1のAC変換係数出力には最大丸め誤差“+0.5”の丸め誤差が重畳し、該丸め誤差は、第3の演算器群1003である加算器931〜933によって、DC変換係数へ加算される。
該DC変換係数には、シフタ108による1ビット右シフト処理と、シフタ106による1ビット左シフト処理によって、最大丸め誤差“−1.0”の丸め誤差も重畳しているので、トータルで“+0.5”の丸め誤差が重畳していることになる。
このままでは、該DC変換係数の見かけ上の丸め誤差が切り上げになり、AC変換係数の丸め処理と同じになってしまうため、第2の実施形態で説明した理由とは正反対の理由で、LSBをDC変換係数から減算し、DC変換係数の見かけ上の丸め処理を切り捨て処理に変え、変換係数がロスレス変換係数になるようにする。
<第2の実施形態の変形例2>
第2の実施形態の変形例2の構成を図13に示す。同図において、861は第1の演算器群1001による演算結果のLSBを2倍にする1ビットのシフタである。871はシフタ861で2倍にしたLSB×2の値を、演算途中のデータから減算する減算器である。その他の構成要素は、図11における同一部番の構成要素と共通である。
本第2の実施形態の変形例2では、1ビット右シフトした第1の演算器群1001による演算結果を、左シフトして使用するのでは無く、1ビット右シフト前の演算結果をそのまま用いるのが特徴である。
減算器871は、シフタ861によってLSBを2倍にした値を、第1の演算器群1001の演算結果から減算することにより、最大丸め誤差“−2”の差分が発生する(これも重畳した丸め誤差と解釈して以下の説明を行う)。
AC変換係数を減算することにより重畳する誤差“+1.5”を、前記重畳誤差に加えると、トータルで“−0.5”の重畳誤差となる。該重畳誤差が実際に発生するのはLSB=1の時だけである。
この重畳誤差は、符号反転器108にて、“+0.5”に変わるため、端子141から出力するDC変換誤差の見かけ上の丸め処理は切り上げになる。
AC変換係数の丸め処理は第2の実施形態(図11)で説明したように、切り捨てであるため、該DC,AC変換係数はロスレス変換係数となる。ちなみに、図13の構成は図11の構成と等価である。
[実施形態2の変形例3]
第2の実施形態の変形例3の構成を図14に示す。同図は、図13の構成において、符号反転器108を入力側に移動した構成と解釈できるし、図11の構成から図13へ置き換えを、図12に適用したものとも解釈できる。よって、図14の構成は図12と等価な構成であることは明らかであり、その説明は不要であろう。
[第3の実施形態]
本発明の第3の実施形態の構成を図15に示す。
これまでに説明してきた第1,第2の実施形態、並びにその変形例は、演算の中心はDC変換係数であった。
すなわち、第1乃至3の演算器群において、共通に加算あるいは減算するデータは、入力端子101から入力したデータD0に種々の演算を施して出力端子141からDC変換係数データY0として出力するものであった。
本実施形態では、共通に加算あるいは減算するデータを、端子102から入力したデータに演算を施し、出力端子142からAC変換係数として出力するパス上のデータとする。これが本第3の実施形態の最大の特徴である。
図15において、941〜943は、第1の演算器群1001を構成する1つの加算器と2つの減算器である。951〜953は、第2のパス上に設けられた第2の演算器群1002を構成する1つの減算器と2つの加算器である。961〜963は、第3の演算器群1003を構成する1つの加算器と2つの減算器である。その他の構成要素は、図1における構成要素と共通する機能を有するものは同一の部番を付し説明を省略する。
第1実施形態と同様、本第3の実施形態における演算内容について説明する。
まず、第1の演算器群1001を構成する加算器941と減算器942,943により、入力データD1を入力データD0に加算すると共に、入力データD1を入力データD2,D3からそれぞれ減算する。この加算および減算結果として、D0+D1,−D1+D2,−D1+D3が生成される。
次に入力データD1をシフタ106により1ビット左シフトする。
上記3つの演算結果は、第2の演算器群1002を構成する減算器951と加算器952、953により、前記シフタ106の出力に減算もしくは加算する。この演算結果は以下のようになる。
(D1<<1)−(D0+D1)+(−D1+D2)+(−D1+D3)
=2・D1−D0−3・D1+D2+D3
=−D0−D1+D2+D3 …(10)
上記式(10)の値は、あるAC変換係数の−2倍の値であることが分かる。そこで、この式(10)で得られた値を、シフタ107にて1ビット右シフト処理した後、符号反転器108にて、その符号を反転することによって、AC変換係数データY1を得る。このAC変換係数データY1は次のようになる。
Y1=−((−D0−D1+D2+D3)>>1)
=(D0+D1−D2−D3+1)>>1 …(11)
上記式(11)の演算内の+1は丸め処理を切り上げ処理にするためのものであり、この演算は第1の実施形態における式(6)と同じである。
そして、式(11)における符号反転前のデータ、即ち(−D0−D1+D2+D3)>>1を、第3の演算器群1003を構成する加算器931と減算器932,933によって、第1の演算器群1001の各々の演算結果に加算、もしくは減算する。この加減算により、以下の式(12)で示されるDC変換係数データY0、及び、式(13)、(14)で、残りの2つのAC変換係数データY2、Y3が得られる。
Y0=D0+D1+((−D0−D1+D2+D3)>>1)
=(2・D0+2・D1−D0−D1+D2+D3)>>1
=(D0+D1+D2+D3)>>1 …(12)
Y2=−D1+D2−((−D0−D1+D2+D3)>>1)
=−D1+D2+((+D0+D1−D2−D3+1)>>1)
=(−2・D1+2・D2+D0+D1−D2−D3+1)>>1
=(D0−D1+D2−D3+1)>>1 …(13)
Y3=−D1+D3−((−D0−D1+D2+D3)>>1)
=−D1+D3+((+D0+D1−D2−D3+1)>>1)
=(−2・D1+2・D3+D0+D1−D2−D3+1))>>1
=(D0−D1−D2+D3+1)>>1 …(14)
式(13)、(14)のように、切り捨て処理した変換係数データを減算して生成した変換係数は、見かけ上、切り上げ処理した変換係数データになる。
それに対し、式(12)のように、切り捨て処理した変換係数データを加算して生成した変換係数は、見かけ上、切り捨て処理した変換係数データになる。
4つの変換係数出力において、見かけ上、切り捨て処理したデータが1つ、切り上げ処理したデータが3つになるため、該変換係数はロスレス変換係数となる。
本第3の実施形態では、共通に加算あるいは減算するデータを、入力端子102から入力したデータD1に演算を施し、出力端子142からAC変換係数データY1として出力するパス上のデータとした。
上記パス上のデータ以外に、入力端子103から入力し、出力端子143から出力するパス上のデータ、あるいは入力端子104から入力し、出力端子143から出力するパス上のデータを、前記共通に加算あるいは減算するデータとすることも可能である。理由は、3つのAC変換係数は互いに対等で、ある1つのAC変換係数に対して適用可能な手法は、他の2つのAC変換係数のいずれにも同様に適用できるからである。他の2つのAC変換係数への適用例を、本明細書に記述することは冗長なので省略する。
<第3の実施形態の変形例1>
第3の実施形態の変形例1を図16に示す。
図16の構成は、図15の構成において、符号反転器108を入力側に移動した構成である。図15と図16の関係は、ちょうど図2と図4の関係と同じである。よって、図16における出力変換係数における丸め処理は、図15の丸め処理とは正反対の関係にあり、切り上げ変換係数が1つ、切り捨て変換係数が3つになるため、ロスレス変換係数になることが理解できよう。
以上、本発明に係る実施形態とその変形例を説明した。
先に示した非特許文献1に記載されているように、ロスレスアダマール変換を用いると、効率よくロスレスDCT変換を行うことができるが、本実施形態によるロスレスアダマール変換を用いれば、さらに効率のよくロスレスDCT変換を行うことが可能である。
該ロスレスDCTの変換係数を量子化してエントロピー符号化すれば、JPEGと互換性のあるロッシー型の符号化を行うことができ、量子化しないで符号化すれば、文字通りロスレス符号化を行うことが可能である。
すなわち、量子化処理の有無により、同じ変換処理でロッシー符号化とロスレス符号化をシームレスに切り替えることが可能である。
量子化しないで符号化した場合は、復号時にロスレスの逆変換を行えば、元の画像データを完全に復元することができる。ロスレスの逆変換を行わず、一般のDCT逆変換処理を施すと、元のデータに近い画像データに復元できる。
本発明において、入力データは一貫して整数としてきたが、該入力データは固定小数点データでもよいことは、明白である。
小数点以下nビットを有する入力データを本発明に基づいてロスレス変換した場合、ロスレス変換係数も、小数点以下nビットを有するデータとなる。
小数点の位置は、データの解釈の問題であり、入出力データ間で同じように小数点を移動させれば、どこに小数点があっても構わない。
第1の実施形態のロスレス4点アダマール変換を行なうデータ変換装置の構成を示す図である。 第1の実施形態の変形例1のデータ変換装置の構成を示す図である。 第1の実施形態の変形例2のデータ変換装置の構成を示す図である。 第1の実施形態の変形例3のデータ変換装置の構成を示す図である。 第1の実施形態の変形例4のデータ変換装置の構成を示す図である。 第1の実施形態の変形例5のデータ変換装置の構成を示す図である。 第1の実施形態の変形例6のデータ変換装置の構成を示す図である。 従来のロスレス4点アダマール変換装置の構成を示す図である。 第1の実施形態の変換処理をコンピュータプログラムで実現した際の処理手順を示す図である。 従来のロスレス4点アダマール変換方法をコンピュータプログラムで実現した際の処理手順を示す図である。 第2の実施形態のロスレス4点アダマール変換を行なうデータ変換装置の構成を示す図である。 第2の実施形態の変形例1のデータ変換装置の構成を示す図である。 第2の実施形態の変形例2のデータ変換装置の構成を示す図である。 第2の実施形態の変形例3のデータ変換装置の構成を示す図である。 第3の実施形態のロスレス4点アダマール変換を行なうデータ変換装置の構成を示す図である。 第3の実施形態の変形例1のデータ変換装置の構成を示す図である。

Claims (10)

  1. 第1乃至第4の入力端子に入力された、整数表現された4つの変換対象データを、周波数空間上の、整数で表わされる1つのDC変換係数データと3つのAC変換係数データに変換し、当該変換結果を第1乃至第4の出力端子から、ロスレスアダマール変換係数として出力するデータ変換装置であって、
    前記4つの変換対象データのうちの1つの変換対象データを入力する第1の入力端子と前記DC変換係数データを出力する第1の出力端子とを結ぶパスを第1のパス、前記1つの変換対象データを除く3つの変換対象データを入力する第2乃至第4の入力端子それぞれと前記3つのAC変換係数データを出力する第2乃至第4の出力端子それぞれとを結ぶパスを第2乃至第4のパスと定義したとき、
    前記第1のパス上に設けられ、入力したデータの符号を反転する符号反転器と、
    前記第1のパス上に設けられ、入力したデータの値を2倍に拡大する変換器と、
    前記第2乃至第4のパス上に設けられ、前記変換器に供給されるデータを、前記3つの変換対象データそれぞれに加算、もしくは、減算する第1の演算器群と、
    前記第1のパス上の、前記変換器よりも前記第1の出力端子側に設けられ、前記第1の演算器群による3つの演算結果それぞれを前記変換器の変換結果に対して減算、もしくは加算する第2の演算器群と、
    前記第1のパス上の、前記第2の演算器群よりも前記第1の出力端子側に設けられ、前記第2の演算器群の出力を1/2に縮小し、小数点以下を切り上げ若しくは切り捨てることで整数化し、第1の出力端子に向けて出力する丸め処理器と、
    前記第2乃至第4のパス上に設けられ、前記丸め処理器と前記第1の出力端子の間のデータを、前記第1の演算器群で得られた3つのデータそれぞれに減算、もしくは加算し、前記第2乃至第4の出力端子に出力する第3の演算器群とを備え、
    前記第1の出力端子に供給されたデータをDC変換係数データ、前記第2乃至第4の出力端子に供給された3つのデータをAC変換係数データとして出力することを特徴とするデータ変換装置。
  2. 第1乃至第4の入力端子に入力された、整数表現された4つの変換対象データを、周波数空間上の、整数で表わされる1つのDC変換係数データと3つのAC変換係数データに変換し、当該変換結果を第1乃至第4の出力端子から、ロスレスアダマール変換係数として出力するデータ変換装置であって、
    前記4つの変換対象データのうちの1つの変換対象データを入力する第1の入力端子と前記DC変換係数データを出力する第1の出力端子とを結ぶパスを第1のパス、前記1つの変換対象データを除く3つの変換対象データを入力する第2乃至第4の入力端子それぞれと前記3つのAC変換係数データを出力する第2乃至第4の出力端子それぞれとを結ぶパスを第2乃至第4のパスと定義したとき、
    前記第1のパス上に設けられ、入力したデータの符号を反転する符号反転器と、
    前記第2乃至第4のパス上に設けられ、前記第1のパス上のデータを、前記3つの変換対象データそれぞれに減算、もしくは加算する第1の演算器群と、
    該第1の演算器群で演算された3つの演算結果を加算し、当該加算結果を1/2に縮小し、小数点以下を切り上げ若しくは切り捨てることで整数化し、当該整数化したデータを前記第1のパス上のデータに加算し、当該加算結果を前記第1のパス上の前記第1の出力端子に向けて出力する第2の演算器群と、
    前記第2乃至第4のパス上に設けられ、前記第2の演算器群で得られたデータを、前記第1の演算器群で得られた3つのデータそれぞれに減算、もしくは加算し、前記第2乃至第4の出力端子に出力する第3の演算器群とを備え、
    前記第1の出力端子に供給されたデータをDC変換係数データ、前記第2乃至第4の出力端子に供給された3つのデータをAC変換係数データとして出力することを特徴とするデータ変換装置。
  3. 第1乃至第4の入力端子に入力された、整数表現された4つの変換対象データを、周波数空間上の、整数で表わされる1つのDC変換係数データと3つのAC変換係数データに変換し、当該変換結果を第1乃至第4の出力端子から、ロスレスアダマール変換係数として出力するデータ変換装置であって、
    前記4つの変換対象データのうちの1つの変換対象データを入力する第1の入力端子と前記DC変換係数データを出力する第1の出力端子とを結ぶパスを第1のパス、前記1つの変換対象データを除く3つの変換対象データを入力する第2乃至第4の入力端子それぞれと前記3つのAC変換係数データを出力する第2乃至第4の出力端子それぞれとを結ぶパスを第2乃至第4のパスと定義したとき、
    前記第1のパス上に設けられ、入力したデータの符号を反転する符号反転器と、
    前記第1のパス上に設けられ、前記第2乃至第4のパス上の3つの変換対象データを、前記第1のパスのデータに減算もしくは加算する第1の演算器群と、
    前記第1のパス上に設けられ、前記第1の演算器群により得られたデータの値を1/2に縮小し、小数点以下を切り上げ若しくは切り捨てることで整数化する丸め処理器と、
    当該丸め処理器による丸め処理した結果を2倍に拡大する変換器と、
    前記第2乃至第4のパス上に設けられ、前記丸め処理器から出力されたデータを、前記3つの変換対象データそれぞれに加算、もしくは、減算し、前記第2乃至第4の出力端子に向けて出力する第2の演算器群と、
    前記第1のパス上に設けられ、前記変換器から出力されたデータに、前記第2の演算器群による3つの演算結果を減算、もしくは加算し、前記第1の出力端子に向けて出力する第3の演算器群と
    前記第1のパス上に設けられ、前記第1の演算器群により得られたデータの最下位ビットを抽出し、前記第3の演算器群により得られたデータに加算もしくは減算する演算器とを備え、
    前記第1の出力端子に供給されたデータをDC変換係数データ、前記第2乃至第4の出力端子に供給された3つのデータをAC変換係数データとして出力することを特徴とするデータ変換装置。
  4. 第1乃至第4の入力端子に入力された、整数表現された4つの変換対象データを、周波数空間上の、整数で表わされる1つのDC変換係数データと3つのAC変換係数データに変換し、当該変換結果を第1乃至第4の出力端子から、ロスレスアダマール変換係数として出力するデータ変換装置であって、
    前記4つの変換対象データのうちの1つの変換対象データを入力する第1の入力端子と前記DC変換係数データを出力する第1の出力端子とを結ぶパスを第1のパス、前記1つの変換対象データを除く3つの変換対象データを入力する第2乃至第4の入力端子それぞれと前記3つのAC変換係数データを出力する第2乃至第4の出力端子それぞれとを結ぶパスを第2乃至第4のパスと定義したとき、
    前記第1のパス上に設けられ、入力したデータの符号を反転する符号反転器と、
    前記第1のパス上に設けられ、前記第2乃至第4のパス上の3つの変換対象データを、前記第1のパスのデータに減算もしくは加算する第1の演算器群と、
    前記第1のパス上に設けられ、前記第1の演算器群により得られたデータの最下位ビットを2倍にした結果を、当該第1の演算器群により得られたデータから減じ、前記第1のパス上に出力する減算器と、
    前記第1の演算器群で演算されたデータの値を1/2に縮小し、小数点以下を切り上げ若しくは切り捨てることで整数化する丸め処理器と、
    前記第2乃至第4のパス上に設けられ、前記丸め処理器から出力されたデータを、前記3つの変換対象データそれぞれに加算、もしくは、減算し、前記第2乃至第4の出力端子に向けて出力する第2の演算器群と、
    前記第1のパス上に設けられ、前記減算器から出力されたデータに、前記第2の演算器群による3つの演算結果を減算、もしくは加算し、前記第1の出力端子に向けて出力する第3の演算器群とを備え、
    前記第1の出力端子に供給されたデータをDC変換係数データ、前記第2乃至第4の出力端子に供給された3つのデータをAC変換係数データとして出力することを特徴とするデータ変換装置。
  5. 第1乃至第4の入力端子に入力された、整数表現された4つの変換対象データを、周波数空間上の、整数で表わされる1つのDC変換係数データと3つのAC変換係数データに変換し、当該変換結果を第1乃至第4の出力端子から、ロスレスアダマール変換係数として出力するデータ変換装置であって、
    前記4つの変換対象データのうちの1つの変換対象データを入力する第1の入力端子と前記DC変換係数データを出力する第1の出力端子とを結ぶパスを第1のパス、前記1つの変換対象データを除く3つの変換対象データを入力する第2乃至第4の入力端子それぞれと前記3つのAC変換係数データを出力する第2乃至第4の出力端子それぞれとを結ぶパスを第2乃至第4のパスと定義したとき、
    前記第2のパス上に設けられ、入力したデータの符号を反転する符号反転器と、
    前記第1、第3、第4のパス上に設けられ、前記第2のパス上のデータを前記第1のパス上の変換対象データに加算、もしくは減算し、第1のパス上に出力すると共に、前記第2のパス上のデータを前記第3、第4のパス上の変換対象データに減算、もしくは加算し、前記第3、第4のパス上に出力する第1の演算器群と、
    前記第2のパス上に設けられ、入力したデータの値を2倍に拡大する処理器と、
    前記第2のパス上に設けられ、前記処理器による処理結果に、前記第1の演算器群で演算された3つの演算結果を、減算、若しくは加算し、前記第2のパス上に出力する第2の演算器群と、
    前記第2のパス上に設けられ、前記第2の演算器群から出力されたデータの値を1/2に縮小し、小数点以下を切り上げ若しくは切り捨てることで整数化し、当該整数化した結果を、AC変換係数データを出力する出力端子に向けて出力する丸め処理器と、
    前記第1、第3、第4のパス上に設けられ、前記丸め処理器からのデータを前記第1の演算器群で演算された3つのデータに加算、もしくは減算し、第1、第3、第4のパス上に出力する第3の演算器群とを備え、
    前記第1のパスの出力端子に供給されたデータをDC変換係数データ、前記第2乃至第4の出力端子に供給された3つのデータをAC変換係数データとして出力することを特徴とするデータ変換装置。
  6. 第1乃至第4の入力端子に入力された、整数表現された4つの変換対象データを、周波数空間上の、整数で表わされる1つのDC変換係数データと3つのAC変換係数データに変換し、当該変換結果を第1乃至第4の出力端子から、ロスレスアダマール変換係数として出力するデータ変換装置の制御方法であって、
    前記4つの変換対象データのうちの1つの変換対象データを入力する第1の入力端子と前記DC変換係数データを出力する第1の出力端子とを結ぶパスを第1のパス、前記1つの変換対象データを除く3つの変換対象データを入力する第2乃至第4の入力端子それぞれと前記3つのAC変換係数データを出力する第2乃至第4の出力端子それぞれとを結ぶパスを第2乃至第4のパスと定義したとき、
    前記第1のパス上に設けられた符号反転器が、入力したデータの符号を反転する符号反転工程と、
    前記第1のパス上に設けられた変換器が、入力したデータの値を2倍に拡大する変換工程と、
    前記第2乃至第4のパス上に設けられた第1の演算器群が、前記変換器に供給されるデータを、前記3つの変換対象データそれぞれに加算、もしくは、減算する第1の演算工程と、
    前記第1のパス上の、前記変換器よりも前記第1の出力端子側に設けられた第2の演算器群が、前記第1の演算器群による3つの演算結果それぞれを前記変換器の変換結果に対して減算、もしくは加算する第2の演算工程と、
    前記第1のパス上の、前記第2の演算器群よりも前記第1の出力端子側に設けられた丸め処理器が、前記第2の演算器群の出力を1/2に縮小し、小数点以下を切り上げ若しくは切り捨てることで整数化し、第1の出力端子に向けて出力する丸め処理工程と、
    前記第2乃至第4のパス上に設けられた第2の演算器群が、前記丸め処理器と前記第1の出力端子の間のデータを、前記第1の演算器群で得られた3つのデータそれぞれに減算、もしくは加算し、前記第2乃至第4の出力端子に出力する第3の演算工程とを備え、
    前記第1の出力端子に供給されたデータをDC変換係数データ、前記第2乃至第4の出力端子に供給された3つのデータをAC変換係数データとして出力することを特徴とするデータ変換装置の制御方法。
  7. 第1乃至第4の入力端子に入力された、整数表現された4つの変換対象データを、周波数空間上の、整数で表わされる1つのDC変換係数データと3つのAC変換係数データに変換し、当該変換結果を第1乃至第4の出力端子から、ロスレスアダマール変換係数として出力するデータ変換装置の制御方法であって、
    前記4つの変換対象データのうちの1つの変換対象データを入力する第1の入力端子と前記DC変換係数データを出力する第1の出力端子とを結ぶパスを第1のパス、前記1つの変換対象データを除く3つの変換対象データを入力する第2乃至第4の入力端子それぞれと前記3つのAC変換係数データを出力する第2乃至第4の出力端子それぞれとを結ぶパスを第2乃至第4のパスと定義したとき、
    前記第1のパス上に設けられた符号反転器が、入力したデータの符号を反転する符号反転工程と、
    前記第2乃至第4のパス上に設けられた第1の演算器群が、前記第1のパス上のデータを、前記3つの変換対象データそれぞれに減算、もしくは加算する第1の演算工程と、
    第2の演算器群が、該第1の演算器群で演算された3つの演算結果を加算し、当該加算結果を1/2に縮小し、小数点以下を切り上げ若しくは切り捨てることで整数化し、当該整数化したデータを前記第1のパス上のデータに加算し、当該加算結果を前記第1のパス上の前記第1の出力端子に向けて出力する第2の演算工程と、
    前記第2乃至第4のパス上に設けられた第3の演算器群が、前記第2の演算器群で得られたデータを、前記第1の演算器群で得られた3つのデータそれぞれに減算、もしくは加算し、前記第2乃至第4の出力端子に出力する第3の演算工程とを備え、
    前記第1の出力端子に供給されたデータをDC変換係数データ、前記第2乃至第4の出力端子に供給された3つのデータをAC変換係数データとして出力することを特徴とするデータ変換装置の制御方法。
  8. 第1乃至第4の入力端子に入力された、整数表現された4つの変換対象データを、周波数空間上の、整数で表わされる1つのDC変換係数データと3つのAC変換係数データに変換し、当該変換結果を第1乃至第4の出力端子から、ロスレスアダマール変換係数として出力するデータ変換装置の制御方法であって、
    前記4つの変換対象データのうちの1つの変換対象データを入力する第1の入力端子と前記DC変換係数データを出力する第1の出力端子とを結ぶパスを第1のパス、前記1つの変換対象データを除く3つの変換対象データを入力する第2乃至第4の入力端子それぞれと前記3つのAC変換係数データを出力する第2乃至第4の出力端子それぞれとを結ぶパスを第2乃至第4のパスと定義したとき、
    前記第1のパス上に設けられた符号反転器が、入力したデータの符号を反転する符号反転工程と、
    前記第1のパス上に設けられた第1の演算器群が、前記第2乃至第4のパス上の3つの変換対象データを、前記第1のパスのデータに減算もしくは加算する第1の演算工程と、
    前記第1のパス上に設けられた変換器が、前記第1の演算器群により得られたデータの値を1/2に縮小し、小数点以下を切り上げ若しくは切り捨てることで整数化する丸め処理工程と、
    変換器が、当該丸め処理器による丸め処理した結果を2倍に拡大する変換工程と、
    前記第2乃至第4のパス上に設けられた第2の演算器群が、前記丸め処理器から出力されたデータを、前記3つの変換対象データそれぞれに加算、もしくは、減算し、前記第2乃至第4の出力端子に向けて出力する第2の演算工程と、
    前記第1のパス上に設けられた第3の演算器群が、前記変換器から出力されたデータに、前記第2の演算器群による3つの演算結果を減算、もしくは加算し、前記第1の出力端子に向けて出力する第3の演算工程と
    前記第1のパス上に設けられた加減算器が、前記第1の演算工程により得られたデータの最下位ビットを抽出し、前記第3の演算工程により得られたデータに加算もしくは減算する加減算工程とを備え、
    前記第1の出力端子に供給されたデータをDC変換係数データ、前記第2乃至第4の出力端子に供給された3つのデータをAC変換係数データとして出力することを特徴とするデータ変換装置の制御方法。
  9. 第1乃至第4の入力端子に入力された、整数表現された4つの変換対象データを、周波数空間上の、整数で表わされる1つのDC変換係数データと3つのAC変換係数データに変換し、当該変換結果を第1乃至第4の出力端子から、ロスレスアダマール変換係数として出力するデータ変換装置の制御方法であって、
    前記4つの変換対象データのうちの1つの変換対象データを入力する第1の入力端子と前記DC変換係数データを出力する第1の出力端子とを結ぶパスを第1のパス、前記1つの変換対象データを除く3つの変換対象データを入力する第2乃至第4の入力端子それぞれと前記3つのAC変換係数データを出力する第2乃至第4の出力端子それぞれとを結ぶパスを第2乃至第4のパスと定義したとき、
    前記第1のパス上に設けられた符号反転器が、入力したデータの符号を反転する符号反転工程と、
    前記第1のパス上に設けられた第1の演算器群が、前記第2乃至第4のパス上の3つの変換対象データを、前記第1のパスのデータに減算もしくは加算する第1の演算工程と、
    前記第1のパス上に設けられた減算器が、前記第1の演算器群により得られたデータの最下位ビットを2倍にした結果を、当該第1の演算器群により得られたデータから減じ、前記第1のパス上に出力する減算工程と、
    丸め処理器が、前記第1の演算器群で演算されたデータの値を1/2に縮小し、小数点以下を切り上げ若しくは切り捨てることで整数化する丸め処理工程と、
    前記第2乃至第4のパス上に設けられた第2の演算器群が、前記丸め処理器から出力されたデータを、前記3つの変換対象データそれぞれに加算、もしくは、減算し、前記第2乃至第4の出力端子に向けて出力する第2の演算工程と、
    前記第1のパス上に設けられた第3の演算器群が、前記減算器から出力されたデータに、前記第2の演算器群による3つの演算結果を減算、もしくは加算し、前記第1の出力端子に向けて出力する第3の演算工程とを備え、
    前記第1の出力端子に供給されたデータをDC変換係数データ、前記第2乃至第4の出力端子に供給された3つのデータをAC変換係数データとして出力することを特徴とするデータ変換装置の制御方法。
  10. 第1乃至第4の入力端子に入力された、整数表現された4つの変換対象データを、周波数空間上の、整数で表わされる1つのDC変換係数データと3つのAC変換係数データに変換し、当該変換結果を第1乃至第4の出力端子から、ロスレスアダマール変換係数として出力するデータ変換装置の制御方法であって、
    前記4つの変換対象データのうちの1つの変換対象データを入力する第1の入力端子と前記DC変換係数データを出力する第1の出力端子とを結ぶパスを第1のパス、前記1つの変換対象データを除く3つの変換対象データを入力する第2乃至第4の入力端子それぞれと前記3つのAC変換係数データを出力する第2乃至第4の出力端子それぞれとを結ぶパスを第2乃至第4のパスと定義したとき、
    前記第2のパス上に設けられた符号反転器が、入力したデータの符号を反転する符号反転工程と、
    前記第1、第3、第4のパス上に設けられた第1の演算器群が、前記第2のパス上のデータを前記第1のパス上の変換対象データに加算、もしくは減算し、第1のパス上に出力すると共に、前記第2のパス上のデータを前記第3、第4のパス上の変換対象データに減算、もしくは加算し、前記第3、第4のパス上に出力する第1の演算工程と、
    前記第2のパス上に設けられた処理器が、入力したデータの値を2倍に拡大する処理工程と、
    前記第2のパス上に設けられた第2の演算器群が、前記処理器による処理結果に、前記第1の演算器群で演算された3つの演算結果を、減算、若しくは加算し、前記第2のパス上に出力する第2の演算工程と、
    前記第2のパス上に設けられた丸め処理器が、前記第2の演算器群から出力されたデータの値を1/2に縮小し、小数点以下を切り上げ若しくは切り捨てることで整数化し、当該整数化した結果を、AC変換係数データを出力する出力端子に向けて出力する丸め処理工程と、
    前記第1、第3、第4のパス上に設けられた第3の演算器群が、前記丸め処理器からのデータを前記第1の演算器群で演算された3つのデータに加算、もしくは減算し、第1、第3、第4のパス上に出力する第3の演算工程とを備え、
    前記第1のパスの出力端子に供給されたデータをDC変換係数データ、前記第2乃至第4の出力端子に供給された3つのデータをAC変換係数データとして出力することを特徴とするデータ変換装置の制御方法。
JP2007294881A 2007-11-13 2007-11-13 データ変換装置及びその制御方法 Expired - Fee Related JP4933405B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007294881A JP4933405B2 (ja) 2007-11-13 2007-11-13 データ変換装置及びその制御方法
US12/266,338 US8107767B2 (en) 2007-11-13 2008-11-06 Data transform apparatus and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007294881A JP4933405B2 (ja) 2007-11-13 2007-11-13 データ変換装置及びその制御方法

Publications (2)

Publication Number Publication Date
JP2009124353A JP2009124353A (ja) 2009-06-04
JP4933405B2 true JP4933405B2 (ja) 2012-05-16

Family

ID=40623767

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007294881A Expired - Fee Related JP4933405B2 (ja) 2007-11-13 2007-11-13 データ変換装置及びその制御方法

Country Status (2)

Country Link
US (1) US8107767B2 (ja)
JP (1) JP4933405B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5451171B2 (ja) * 2009-05-13 2014-03-26 キヤノン株式会社 データ変換処理装置およびデータ変換処理方法
JP5375676B2 (ja) * 2010-03-04 2013-12-25 富士通株式会社 画像処理装置、画像処理方法、および画像処理プログラム
CN101841711B (zh) * 2010-04-17 2012-01-04 上海交通大学 用于视频解码的反量化装置及其实现方法

Family Cites Families (34)

* 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
JP3227292B2 (ja) * 1993-12-20 2001-11-12 キヤノン株式会社 符号化装置、符号化方法、復号化装置、復号化方法、符号化復号化装置及び符号化復号化方法
US6408102B1 (en) * 1993-12-20 2002-06-18 Canon Kabushiki Kaisha Encoding/decoding device
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 キヤノン株式会社 符号化装置
JP2000115770A (ja) * 1998-10-06 2000-04-21 Canon Inc 符号化装置及び方法
JP2000115782A (ja) * 1998-10-06 2000-04-21 Canon Inc 符号化装置及び方法及び記憶媒体
JP2000115783A (ja) * 1998-10-06 2000-04-21 Canon Inc 復号化装置及び方法
US6865299B1 (en) * 1999-07-27 2005-03-08 Canon Kabushiki Kaisha Coding apparatus and method
JP3716695B2 (ja) * 1999-12-24 2005-11-16 日本電気株式会社 高速アダマール変換器
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
JP3495336B2 (ja) * 2001-01-29 2004-02-09 日本電信電話株式会社 画像符号化方法及び装置並びに画像復号化方法及び装置
EP1271926B1 (en) * 2001-06-18 2015-08-12 Canon Kabushiki Kaisha Image processing method, apparatus and computer program for compression-encoding
CN1320809C (zh) * 2001-08-29 2007-06-06 佳能株式会社 图像处理装置与方法
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 キヤノン株式会社 データ変換装置及び方法
US7558815B2 (en) * 2004-10-08 2009-07-07 Infoprint Solutions Company Llc Processing of performance sensitive transforms
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 画像符号化装置及びその制御方法
JP4311759B2 (ja) * 2007-10-29 2009-08-12 キヤノン株式会社 データ変換装置及びその制御方法
JP4594420B2 (ja) * 2008-12-25 2010-12-08 キヤノン株式会社 データ変換装置及びその制御方法

Also Published As

Publication number Publication date
US8107767B2 (en) 2012-01-31
JP2009124353A (ja) 2009-06-04
US20090123087A1 (en) 2009-05-14

Similar Documents

Publication Publication Date Title
JP4311759B2 (ja) データ変換装置及びその制御方法
RU2413983C2 (ru) Обратимое преобразование для сжатия двумерных данных с потерями и без потерь
JP3902990B2 (ja) アダマール変換処理方法及びその装置
US7188132B2 (en) Hadamard transformation method and apparatus
JP3796432B2 (ja) フィルタ処理装置およびフィルタ処理方法
JP4933405B2 (ja) データ変換装置及びその制御方法
JP4378245B2 (ja) データ変換装置及び方法
TWI415474B (zh) 視訊編/解碼器與其方法
JP2014241585A (ja) ビデオデータ処理時に空間領域と周波数領域との間の変換を実行するためのデータ処理装置および方法
JP2005039798A (ja) データ変換処理装置及びその方法
JP2001346213A (ja) 離散コサイン変換装置及びその離散コサイン変換方法
CN121127860A (zh) 在gpu上编码视频数据
JP3754957B2 (ja) アダマール変換処理方法及びその装置
KR101219411B1 (ko) 데이터 변환장치 및 그 제어 방법
Gustafsson On lifting-based fixed-point complex multiplications and rotations
JP3155383B2 (ja) 2モード処理装置、2次元変換装置及び静止画像データの圧縮システム
KR20130137951A (ko) 초고해상도 영상 코덱을 위한 역변환 방법
WO2009057439A1 (en) Data transform apparatus and control method thereof
JP5546329B2 (ja) データ変換装置
CN100388316C (zh) 高精度的无乘法器的数字余弦变换电路及其变换方法
JPH0746136A (ja) 音響又は画像変換プロセッサ、音響又は画像データ処理装置、音響又は画像データ処理方法、算術プロセッサ、及びデータプロセッサ
US5831882A (en) Orthogonal transformation processing device
JP4378407B2 (ja) データ変換処理装置及びその方法
Jaime et al. Pipelined architecture for accurate floating point range reduction
JP2011257806A (ja) データ変換方法、変換装置および画像符号化装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100922

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111031

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111226

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

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

R151 Written notification of patent or utility model registration

Ref document number: 4933405

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20150224

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees