JP3757884B2 - データ変換方法、データ変換回路及びデータ変換プログラム - Google Patents

データ変換方法、データ変換回路及びデータ変換プログラム Download PDF

Info

Publication number
JP3757884B2
JP3757884B2 JP2002073072A JP2002073072A JP3757884B2 JP 3757884 B2 JP3757884 B2 JP 3757884B2 JP 2002073072 A JP2002073072 A JP 2002073072A JP 2002073072 A JP2002073072 A JP 2002073072A JP 3757884 B2 JP3757884 B2 JP 3757884B2
Authority
JP
Japan
Prior art keywords
data
conversion
bit
address
input
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
JP2002073072A
Other languages
English (en)
Other versions
JP2003209715A (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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2002073072A priority Critical patent/JP3757884B2/ja
Priority to US10/291,173 priority patent/US7111028B2/en
Publication of JP2003209715A publication Critical patent/JP2003209715A/ja
Application granted granted Critical
Publication of JP3757884B2 publication Critical patent/JP3757884B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • G06F1/035Reduction of table size
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/20Circuitry for controlling amplitude response
    • H04N5/202Gamma control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Image Processing (AREA)
  • Picture Signal Circuits (AREA)
  • Facsimile Image Signal Circuits (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、入力データを変換して出力データを生成するデータ変換方法、データ変換回路及びデータ変換プログラムに関し、特に、入力データをガンマ変換して出力データを生成するデータ変換方法等に関する。
【0002】
【従来の技術】
一般に、CRT等の受像管において、駆動電圧Eとカソード電流Iとの間には、次式で表すような関係が存在する。
I=KEγ
この関係はガンマ(γ)特性と呼ばれる。ガンマの値は一般に1.6〜3程度であるので、カソード電流Iは駆動電圧Eに対して非直線性を有する。受像管においてγ=1とすることは困難なので、送像側にガンマ補正回路を設けて総合的にγ=1とすることが行われている。本願においては、このようなガンマ補正のために画像信号に対して行う変換のことをガンマ変換という。
【0003】
画像読み取り装置や画像表示装置等に用いられる画像処理LSI等において、画像データのガンマ変換が行われる。ガンマ変換は、入力をx、出力をyとすると、次式によって表される。
【数1】
Figure 0003757884
【0004】
図26に、γ=1.8とした場合の式(1)のグラフを示す。ガンマ変換は、このようにべき関数であるため、その演算には多くの時間が必要である。ところが、ガンマ変換は、画像読み取り装置等の高速動作のために、高速に行われることが要求される。そのため、従来より、入力データに対応する変換データを有する変換テーブルをSRAM等の高速記憶素子に格納し、入力データに対応する変換データを変換テーブルから読み出すことが行われている。図27は、このような従来のガンマ変換回路を示す図である。図27に示すように、従来のガンマ変換回路70は、入力データに対応する変換データを有する変換テーブルを格納する変換テーブル格納部71を具備しており、入力データに対応する変換データを出力する。ここで、変換テーブル格納部71は、SRAM等の高速記憶素子によって構成される。
【0005】
ガンマ変換回路70においては、例えば、入力データが12ビットのデータであり、出力データが8ビットのデータである場合には、変換テーブルのサイズは、4096ワード(ここでは、1ワード=8ビット)となり、変換テーブル格納部71の記憶容量も4096ワード必要となる。また、入力データが16ビットのデータであり、出力データが12ビットのデータである場合には、変換テーブルのサイズは、65536ワード(ここでは、1ワード=12ビット)となり、変換テーブル格納部71の記憶容量も65536ワード必要となる。このように大きなサイズの変換テーブルを格納するための大容量のSRAMを画像処理LSIに集積することは、極めて困難である。また、このような大容量のSRAMを画像処理LSIに集積できた場合であっても、画像処理LSIの大幅なコストアップを招くこととなる。
【0006】
また、変換テーブルを小さくするため、所定間隔(例えば、16)毎の入力データに対応する変換データを有する変換テーブルをSRAM等に格納し、対応する変換データが変換テーブルに格納されている入力データが入力された場合には該変換データを出力し、対応する変換データが変換テーブルに格納されていない入力データが入力された場合には、該入力データの前後の入力データであって対応する変換データが変換テーブルに格納されている入力データに対応する変換データに補間処理を行って得られたデータを出力することが行われている。図28は、このような従来のガンマ変換回路を示す図である。図28に示すように、従来のガンマ変換回路80は、所定間隔毎の入力データに対応する変換データを有する変換テーブルを格納する変換テーブル格納部81及び変換テーブル格納部81の出力データに補間処理を行う補間処理部82を具備している。ここで、変換テーブル格納部81は、SRAM等の高速記憶素子によって構成される。
【0007】
ガンマ変換回路80においては、例えば、入力データが12ビットのデータであり、出力データが8ビットのデータであり、対応する変換データが格納される入力データの間隔が16である場合には、変換テーブルのサイズは、256ワード(ここでは、1ワード=8ビット)となり、変換テーブル格納部81に必要とされる記憶容量も256ワードに低減される。また、入力データが16ビットのデータであり、出力データが12ビットのデータで、入力データの間隔が16である場合には、変換テーブルのサイズは、4096ワード(ここでは、1ワード=12ビット)となり、変換テーブル格納部81に必要とされる記憶容量も4096ワードに低減される。
【0008】
【発明が解決しようとする課題】
しかしながら、ガンマ変換回路80の出力データは、補間処理により算出されるため、誤差を有することとなる。図29は、入力データが16ビットのデータであり、出力データが16ビットのデータであり、対応する変換データが格納される入力データの間隔が16であるとした場合におけるガンマ変換回路80の出力データと式(1)により算出される値との誤差を示す図である。図29に示すように、ガンマ変換回路80の出力データは、最大で約130の誤差を有する。
【0009】
そこで、上記の点に鑑み、本発明は、変換データを格納する回路の記憶容量を小さくすると共に、出力データの誤差を小さくすることができるデータ変換方法、データ変換回路及びデータ変換プログラムを提供することを目的とする。
【0010】
【課題を解決するための手段】
以上の課題を解決するため、本発明の第1の観点に係るデータ変換方法は、入力データを変換して出力データを生成するデータ変換方法であって、前記入力データ中の「1」であるビットの内で最上位に位置するビットのビット番号Lを示すmビット幅の第1のデータを求めるステップ(a)と、ビット番号(L−1)から(L−n)までのnビット幅の第2のデータを求めるステップ(b)と、前記第1のデータと前記第2のデータとを結合して、(m+n)ビット幅の第1のアドレスを生成するステップ(c)と、前記第1のアドレスをインクリメント又はデクリメントして、第2のアドレスを生成するステップ(d)と、入力データに所定の変換を施した変換データを前記入力データから生成した前記アドレスに対応して記憶している記憶手段により、前記第1のアドレスに対応する第1の変換データと、前記第2のアドレスに対応する第2の変換データとを読み出すステップ(e)と、前記ビット番号Lを示すmビット幅の第1のデータに基づいて、前記第1及び第2の変換データのシフト量を求め、前記シフト量に基づいて前記第1及び第2の変換データから前記出力データを生成するステップ(f)と、を具備するデータ変換方法に関係する。
【0011】
ここで、前記ステップ(f)は前記第1及び第2の変換データの差に基づく値を前記シフト量でシフトした値を、前記第1の変換データに加算して補間処理をおこなうことで出力データを生成するステップであることを特徴とするデータ変換方法に関係する。
【0012】
また、本発明の第2の観点に係るデータ変換方法は、入力データを変換して出力データを生成するデータ変換方法であって、前記入力データ中の「1」であるビットの内で最上位に位置するビットのビット番号Lを示すmビット幅の第1のデータを求めるステップ(a)と、前記入力データの中から、ビット番号(L−1)から(L−n)までのnビット幅の第2のデータを抽出し、前記第2のデータに所定の操作を施すことによりkビット幅の第3のデータを求めるステップ(b)と、前記第1のデータと前記第3のデータとを結合して、(m+k)ビット幅の第1のアドレスを生成するステップ(c)と、前記第1のアドレスをインクリメント又はデクリメントして、第2のアドレスを生成するステップ(d)と、入力データに所定の変換を施した変換データを前記入力データから生成した前記アドレスに対応して記憶している記憶手段により、前記第1のアドレスに対応する第1の変換データと、前記第2のアドレスに対応する第2の変換データとを読み出すステップ(e)と、前記第1及び第2の変換データに基づいて、前記出力データを生成するステップ(f)と、を具備する。
【0013】
ここで、前記ステップ(f)は前記第1及び第2の変換データに基づいて補間処理をおこなうことで出力データを生成するステップであることとしても良い。また、前記ステップ(b)が、第i群に属するデータの数をViとしたときにV0<V1<…<VNとなるように、前記第2のデータ0〜(2n−1)をN群に分割することにより前記第3のデータを求めることをとしても良い。また、nが3、4、又は、5であるとしても良い。
【0014】
さらに、本発明の第3の観点に係るデータ変換方法は、入力データを変換して出力データを生成するデータ変換方法であって、 前記入力データ中の「1」であるビットの内で最上位に位置するビットのビット番号Lを示すmビット幅の第1のデータを求めるステップ(a)と、前記入力データの中から、ビット番号(L−1)から(L−n)までのnビット幅の第2のデータを抽出し、前記第2のデータ中の「1」であるビットの内で最上位に位置するビットのビット番号を示すkビット幅の第3のデータを求めるステップ(b)と、前記第1のデータと前記第3のデータとを結合して、(m+k)ビット幅の第1のアドレスを生成するステップ(c)と、前記第1のアドレスをインクリメント又はデクリメントして、第2のアドレスを生成するステップ(d)と、入力データに所定の変換を施した変換データを前記入力データから生成した前記アドレスに対応して記憶している記憶手段により、前記第1のアドレスに対応する第1の変換データと、前記第2のアドレスに対応する第2の変換データとを読み出すステップ(e)と、前記第1及び第2の変換データに基づいて、前記出力データを生成するステップ(f)と、を具備する。
【0015】
ここで、前記ステップ(f)は前記第1及び第2の変換データに基づいて補間処理をおこなうことで出力データを生成するステップであることとしても良く。また、nが3であるとしても良い。
【0016】
また、本発明の第1乃至第3の観点に係るデータ変換方法において、前記補間処理が線形補間処理であるとしても良い。また、前記所定の変換がガンマ変換であることとしても良い。さらに、前記入力データのビット数と等しいビット数を有するデータを、自然数Aと実数Bとを用いて2-A・Bの形式で表せるように、2つの項に分解するステップ(g)と、等間隔の複数のデータに前記所定の変換を施した変換データを記憶しているテーブルから、前記2つの項のそれぞれに対応する2つの変換データを読み出すステップ(h)と、前記2つの変換データの乗算を行うことにより、2-A・Bの形式で表したデータの変換データを求めるステップ(i)と、をさらに具備し、複数のデータについてステップ(g)〜(i)を繰り返すことにより、前記記憶手段に記憶すべき変換データを求めることとしても良い。
【0017】
本発明の第1の観点に係るデータ変換回路は、入力データを変換して出力データを生成するデータ変換回路であって、前記入力データ中の「1」であるビットの内で最上位に位置するビットのビット番号Lを示すmビット幅の第1のデータを求める第1の手段と、前記入力データ中のビット番号Lのデータに続くnビット幅の第2のデータを求める第2の手段と、前記第1のデータと前記第2のデータとを結合して、(m+n)ビット幅の第1のアドレスを生成し、前記第1のアドレスをインクリメント又はデクリメントして、第2のアドレスを生成する第3の手段と、入力データに所定の変換を施した変換データを前記入力データから生成した前記アドレスに対応して記憶する第4の手段と、前記第3の手段によって生成された第1のアドレスに対応する第1の変換データと、前記第3の手段によって生成された第2のアドレスに対応する第2の変換データとを前記第4の手段から読み出す第5の手段と、 前記第1及び第2の変換データに基づいて、前記出力データを生成する第6の手段と、を具備する。
【0018】
ここで、前記第6の手段は、前記第1及び第2の変換データに基づいて補間処理をおこなうことで出力データを生成する手段であるとしても良い。
【0019】
本発明の第2の観点に係るデータ変換回路は、入力データを変換して出力データを生成するデータ変換回路であって、前記入力データ中の「1」であるビットの内で最上位に位置するビットのビット番号Lを示すmビット幅の第1のデータを求める第1の手段と、前記入力データの中から、ビット番号(L−1)から(L−n)までのnビット幅の第2のデータを抽出し、前記第2のデータに所定の操作を施すことによりkビット幅の第3のデータを求める第2の手段と、前記第1のデータと前記第3のデータとを結合して、(m+k)ビット幅の第1のアドレスを生成し、前記第1のアドレスをインクリメント又はデクリメントして、第2のアドレスを生成する第3の手段と、入力アドレスに所定の変換を施した変換データを前記入力アドレスに対応して記憶する第4の手段と、前記第1のアドレスに対応する第1の変換データと、前記第2のアドレスに対応する第2の変換データとを前記第4の手段から読み出す第5の手段と、前記第1及び第2の変換データに基づいて前記出力データを生成する第6の手段と、を具備する。
【0020】
ここで、前記第6の手段は、前記第1及び第2の変換データに基づいて補間処理をおこなうことで出力データを生成する手段であるとしても良い。また、前記第2の手段が、第i群に属するデータの数をViとしたときにV0<V1<…<VNとなるように、前記第2のデータ0〜(2n−1)をN群に分割することにより前記第3のデータを求めることとしても良い。
【0021】
本発明の第3の観点に係るデータ変換回路は、入力データを変換して出力データを生成するデータ変換回路であって、前記入力データ中の「1」であるビットの内で最上位に位置するビットのビット番号Lを示すmビット幅の第1のデータを求める第1の手段と、前記入力データの中から、ビット番号(L−1)から(L−n)までのnビット幅の第2のデータを抽出し、前記第2のデータ中の「1」であるビットの内で最上位に位置するビットのビット番号を示すkビット幅の第3のデータを求める第2の手段と、前記第1のデータと前記第3のデータとを結合して、(m+k)ビット幅の第1のアドレスを生成し、前記第1のアドレスをインクリメント又はデクリメントして、第2のアドレスを生成する第3の手段と、入力データに所定の変換を施した変換データを前記入力データから生成した前記アドレスに対応して記憶する第4の手段と、前記第1のアドレスに対応する第1の変換データと、前記第2のアドレスに対応する第2の変換データとを前記第4の手段から読み出す第5の手段と、前記第1及び第2の変換データに基づいて、前記出力データを生成する第6の手段と、を具備する。
【0022】
ここで、前記第6の手段は、前記第1及び第2の変換データに基づいて補間処理をおこなうことで出力データを生成する手段であるとしても良い。また、前記補間処理が線形補間処理であるとしても良い。
【0023】
ここで、本発明の第1から第3の観点に係るデータ変換回路において、前記補間処理が線形補間処理であるとしても良い。また、前記所定の変換がガンマ変換であるとしても良い。
【0024】
本発明の第1の観点に係るデータ変換プログラムは、入力データを変換して出力データを生成するために用いるデータ変換プログラムであって、前記入力データ中の「1」であるビットの内で最上位に位置するビットのビット番号Lを示すmビット幅の第1のデータを求める手順(a)と、前記入力データ中のビット番号Lのデータに続くnビット幅の第2のデータを求める手順(b)と、前記第1のデータと前記第2のデータとを結合して、(m+n)ビット幅の第1のアドレスを生成する手順(c)と、前記第1のアドレスをインクリメント又はデクリメントして、第2のアドレスを生成する手順(d)と、入力アドレスに所定の変換を施した変換データを複数のアドレスに対応して記憶している記憶手段から、前記第1のアドレスに対応する第1の変換データと、前記第2のアドレスに対応する第2の変換データとを読み出す手順(e)と、前記第1及び第2の変換データに基づいて前記出力データを生成する手順(f)と、を情報処理装置に実行させる。
【0025】
ここで、前記手順(f)は前記第1及び第2の変換データに基づいて補間処理をおこなうことで出力データを生成する手順であるとしても良い。
【0026】
本発明の第2の観点に係るデータ変換プログラムは、入力データを変換して出力データを生成するために用いるデータ変換プログラムであって、前記入力データ中の「1」であるビットの内で最上位に位置するビットのビット番号Lを示すmビット幅の第1のデータを求める手順(a)と、前記入力データの中から、ビット番号(L−1)から(L−n)までのnビット幅の第2のデータを抽出し、前記第2のデータに所定の操作を施すことによりkビット幅の第3のデータを求める手順(b)と、前記第1のデータと前記第3のデータとを結合して、(m+k)ビット幅の第1のアドレスを生成する手順(c)と、前記第1のアドレスをインクリメント又はデクリメントして、第2のアドレスを生成する手順(d)と、入力データに所定の変換を施した変換データを前記入力データから生成した前記アドレスに対応して記憶している記憶手段から、前記第1のアドレスに対応する第1の変換データと、前記第2のアドレスに対応する第2の変換データとを読み出す手順(e)と、前記第1及び第2の変換データに基づいて、前記出力データを生成する手順(f)と、を情報処理装置に実行させる。
【0027】
ここで、前記手順(f)は前記第1及び第2の変換データに基づいて補間処理をおこなうことで出力データを生成する手順であるとしても良い。また、手順(b)が、第i群に属するデータの数をViとしたときにV0<V1<…<VNとなるように、前記第2のデータ0〜(2n−1)をN群に分割することにより前記第3のデータを求めることとしても良い。
【0028】
本発明の第3の観点に係るデータ変換プログラムは、入力データを変換して出力データを生成するために用いるデータ変換プログラムであって、前記入力データ中の「1」であるビットの内で最上位に位置するビットのビット番号Lを示すmビット幅の第1のデータを求める手順(a)と、前記入力データの中から、ビット番号(L−1)から(L−n)までのnビット幅の第2のデータを抽出し、前記第2のデータ中の「1」であるビットの内で最上位に位置するビットのビット番号を示すkビット幅の第3のデータを求める手順(b)と、前記第1のデータと前記第3のデータとを結合して、(m+k)ビット幅の第1のアドレスを生成する手順(c)と、前記第1のアドレスをインクリメント又はデクリメントして、第2のアドレスを生成する手順(d)と、入力データに所定の変換を施した変換データを前記入力データから生成した前記アドレスに対応して記憶している記憶手段から、前記第1のアドレスに対応する第1の変換データと、前記第2のアドレスに対応する第2の変換データとを読み出す手順(e)と、前記第1及び第2の変換データに基づいて、前記出力データを生成する手順(f)と、を情報処理装置に実行させる。
ここで、前記手順(f)は前記第1及び第2の変換データに基づいて補間処理をおこなうことで出力データを生成する手順であることとしても良い。
【0029】
本発明の第1〜3の観点に係るデータ変換プログラムにおいて、前記手順(f)は前記第1及び第2の変換データに基づいて補間処理をおこなうことで出力データを生成する手順であることとしても良い。また、前記補間処理が線形補間処理であるとしても良い。また、前記所定の変換がガンマ変換であるとしても良い。さらに、前記入力データのビット数と等しいビット数を有するデータを、自然数Aと実数Bとを用いて2-A・Bの形式で表せるように、2つの項に分解する手順(g)と、等間隔の複数のデータに前記所定の変換を施すことにより得られた複数の変換データを記憶しているテーブルから、前記2つの項のそれぞれに対応する2つの変換データを読み出す手順(h)と、前記2つの変換データの乗算を行うことにより、2-A・Bの形式で表したデータの変換データを求める手順(i)と、を情報処理装置に実行させ、複数のデータについて手順(g)〜(i)を繰り返すことにより、前記記憶手段に記憶すべき変換データを求めることとしても良い。
【0030】
プライオリティエンコーダ11は、16ビット幅の入力データを入力し、入力データ中の最上位に位置する「1」のビットを検出し、検出したビットのビット番号を4ビット幅のLデータとして出力する。なお、一般に、ビット番号は、最下位ビットを0とし、上位ビットに向かってカウントする。本実施形態においては、一般にならい、最下位ビットのビット番号を0とし、最上位ビットのビット番号を15とする。例えば、プライオリティエンコーダ11は、入力データが「16’h0001」(ここで、「16’」は16ビット幅のデータであることを示し、「h」は16進表示であることを示し、「0001」は入力データの値を示す)の場合には、「4’h0」(ここで、「4’」は4ビット幅のデータであることを示し、「h」は16進表示であることを示し、「0」はLデータの値を示す)のLデータを出力し、入力データが「16’h0002」の場合には、「4’h1」のLデータを出力し、入力データが「16’h0003」の場合には、「4’h1」のLデータを出力する。また、プライオリティエンコーダ11は、入力データ中に「1」のビットがない場合、すなわち入力データが「16’h0000」である場合には、「4’h0」のLデータを出力すると共に、ハイレベルのzero信号を出力する。
【0031】
ビット抽出部12は、入力データ及びLデータを入力し、入力データ中のビット番号(L−1)〜(L−2)の2ビットをNデータとして出力する。例えば、ビット抽出部12は、入力データが「16’h0004」であり、Lデータが「4’h2」である場合には、「2’b00」(ここで、「2’」は2ビット幅のデータであることを示し、「b」は2進表示であることを示し、「00」はデータの値を示す)のNデータを出力し、入力データが「16’h0005」であり、Lデータが「4’h2」である場合には、「2’b01」のNデータを出力する。なお、ビット抽出部12は、Lデータが「4’h2」以下の場合、すなわち入力データが「16’h0000」であり、Lデータが「4’h0」である場合には、「2’b00」のNデータを出力し、入力データが「16’h0001」であり、Lデータが「4’h0」である場合には、「2’b00」のNデータを出力し、入力データが「16’h0002」であり、Lデータが「4’h1」である場合には、「2’b00」のNデータを出力し、入力データが「16’h0003」であり、Lデータが「4’h1」である場合には、「2’b10」のNデータを出力する。
【0032】
また、ビット抽出部12は、入力データ中のビット番号(L−3)〜0の(L−2)ビットを16ビット幅にゼロ拡張したMデータを乗算器19に出力する。例えば、ビット抽出部12は、入力データが「16’h0009」であり、Lデータが「4’h3」である場合に、入力データのビット番号0である「1’b1」を16ビット幅にゼロ拡張した「16’h0001」をMデータとして乗算器24に出力する。また、例えば、ビット抽出部12は、入力データが「16’h0013」であり、Lデータが「4’h4」である場合に、入力データのビット番号1〜0である「2’b11」を16ビット幅にゼロ拡張した「16’h0003」をMデータとして乗算器19に出力する。
【0033】
テーブルアドレス作成部13は、4ビット幅のLデータ及び2ビット幅のNデータを入力し、Lデータを上位としNデータを下位として結合した6ビットの第1のテーブルアドレスを出力し、所定時間経過後に、LデータとNデータを結合したデータをインクリメント(又はデクリメント)した第2のテーブルアドレスを出力する。例えば、テーブルアドレス作成部14は、Lデータが「4’h3」であり、Nデータが「2’b00」である場合には、「6’b001100」を第1のテーブルアドレスとして出力し、所定時間経過後に、「6’b001101」を第2のテーブルアドレスとして出力する。
【0034】
変換テーブル格納部14は、所定の入力データをガンマ変換した12ビット幅の変換データをテーブルアドレスに対応させた変換テーブルを格納しており、第1及び第2のテーブルアドレスに応じて第1及び第2の変換データを出力する。
【0035】
図2は、入力データ、Lデータ、Nデータ、テーブルアドレス、入力データの増分、及び、変換データの対応を示す図である。図2において、y0001は、入力データ「16’h0001」をガンマ変換した12ビット幅のデータであり、y0002は、入力データ「16’h0002」をガンマ変換した12ビット幅のデータであり、y0003は、入力データ「16’h0003」をガンマ変換した12ビット幅のデータであり、y0004は、入力データ「16’h0004」をガンマ変換した12ビット幅のデータである。また、y0005は、入力データ「16’h0005」をガンマ変換した12ビット幅のデータであり、y0006は、入力データ「16’h0006」をガンマ変換した12ビット幅のデータであり、y0007は、入力データ「16’h0007」をガンマ変換した12ビット幅のデータであり、y0008は、入力データ「16’h0008」をガンマ変換した12ビット幅のデータである。また、y000aは、入力データ「16’h000a」をガンマ変換した12ビット幅のデータであり、y000cは、入力データ「16’h000c」をガンマ変換した12ビット幅のデータであり、y000cは、入力データ「16’h000e」をガンマ変換した12ビット幅のデータであり、y0010は、入力データ「16’h0010」をガンマ変換した12ビット幅のデータであり、ye000は、入力データ「16’he000」をガンマ変換した12ビット幅のデータである。
【0036】
図2に示すように、例えば、入力データが「16’h0008」の場合に、テーブルアドレスは、「6’b001100」となり、入力データが「16’h0009」の場合にも、テーブルアドレスは、「6’b001100」となる。この場合、変換テーブル格納部14は、入力データ「16’h0008」をガンマ変換した変換データy0008をテーブルアドレス「6’b001100」に対応させて格納し、入力データ「16’h0009」をガンマ変換した変換データは格納しない。このように、複数の入力データから同一のテーブルアドレスが生成される場合には、変換テーブル格納部14は、複数の入力データの内の最小の入力データをガンマ変換した変換データのみを複数の入力データから生成されるテーブルアドレスに対応させて格納する。
【0037】
図3〜図5は、入力データ、テーブルアドレス、及び、変換データの対応を示す図である。図3〜図5において、対応する変換データが変換テーブル格納部14に格納されていない入力データの表示は、省かれている。図3〜図5に示すように、入力データ(本実施形態においては、「16’h0000」〜「16’hffff」の65536通りに変化する)に対して、変換データは、y0001〜ye000の59データとなる。従って、変換テーブル格納部14は、59ワード(ここでは、1ワード=12ビット)の記憶容量を有すれば良いこととなる。
【0038】
なお、図3〜図5に示すように、変換テーブル格納部14は、入力データのレンジ「16’h0008」〜「16’h0010」において、このレンジを4等分する入力データである「16’h000a」、「16’h000c」、及び、「16’h000e」にそれぞれ対応する変換データy000a、y000c、及び、y000eを格納する。同様に、変換テーブル格納部14は、入力データのレンジ「16’h0010」〜「16’h0020」、「16’h0020」〜「16’h0040」、「16’h0040」〜「16’h0080」、「16’h0080」〜「16’h0100」、「16’h0100」〜「16’h0200」、「16’h0200」〜「16’h0400」、「16’h0400」〜「16’h0800」、「16’h0800」〜「16’h1000」、「16’h1000」〜「16’h2000」、「16’h2000」〜「16’h4000」、「16’h4000」〜「16’h8000」、「16’h8000」〜「16’h10000」のレンジを4等分する入力データにそれぞれ対応する変換データを格納する。
【0039】
再び図1を参照すると、マルチプレクサ15は、zero信号がハイレベルの場合には「0」を選択出力し、zero信号がローレベルの場合には変換テーブル格納部14が出力する変換データを選択出力する。
【0040】
線形補間部20は、変換テーブル格納部14が出力する第1及び第2の変換データに対して線形補間処理を行う。
デコーダ21は、Lデータから2を減じたデータをシフタ25に出力する。例えば、デコーダ21は、Lデータが「4’h3」の場合には、「4’h1」をシフタ25に出力し、Lデータが「4’h4」の場合には、「4’h2」をシフタ25に出力する。
【0041】
レジスタ22は、マルチプレクサ15の出力を所定の時間保持する。
減算器23は、マルチプレクサ15の出力データからレジスタ22の出力データを減じて出力する。
乗算器24は、減算器23の出力データにMデータを乗じて出力する。
【0042】
シフタ25は、乗算器24の出力データをデコーダ21の出力データの値分だけ右シフトして出力する。シフタ25は、除算器としての機能を果たす。
加算器26は、マルチプレクサ15の出力データをシフタ25の出力データに加え、出力データ(ガンマ変換データ)として出力する。
【0043】
次に、線形補間部20が行う線形補間処理について図6を参照しながら説明する。図6は、線形補間部20が行う線形補間処理の原理を示す図である。図6に示すように、線形補間部20は、入力データxcに対応する変換データycを、次式によって算出することができる。
【数2】
Figure 0003757884
【0044】
次に、ガンマ変換回路のガンマ変換処理について、図1、図7、及び、図8を参照しながら説明する。図7は、ガンマ変換回路のガンマ変換処理を示すフローチャートであり、図8は、ガンマ変換回路の線形補間部の線形補間処理を示すフローチャートである。
【0045】
図7及び図8の処理を開始すると、プライオリティエンコーダ11は、入力データを入力し、Lデータを出力する(ステップS101)。
次に、ビット抽出部12は、入力データ及びLデータを入力し、Nデータ及びMデータを出力する(ステップS102)。
次に、テーブルアドレス作成部13は、Lデータ及びNデータを入力し、第1のテーブルアドレスを出力する(ステップS103)。
【0046】
次に、変換テーブル格納部14は、第1のテーブルアドレスに応じて、第1の変換データを出力する(ステップS104)。
次に、マルチプレクサ15は、zero信号の値に応じて、0又は第1の変換データを選択出力し、これがレジスタ22に読み込まれる(ステップS105)。
次に、テーブルアドレス作成部13は、第1のテーブルアドレスをインクリメント(又はデクリメント)した第2のテーブルアドレスを出力する(ステップS106)。
【0047】
次に、変換テーブル格納部14は、第2のテーブルアドレスに応じて、第2の変換データを出力する(ステップS107)。
次に、マルチプレクサ15は、zero信号の値に応じて、0又は第2の変換データを選択出力する(ステップS108)。
次に、線形補間部20は、第1の変換データ及び第2の変換データに基づいて、線形補間処理を開始する(ステップS109)。
【0048】
線形補間処理を開始すると、線形補間部20のデコーダ21は、Lデータからシフタ25が行うべきシフト処理のシフト量を算出する(ステップS201)。
次に、減算器23は、マルチプレクサ15の出力データである第2の変換データからレジスタ22の出力データである第1の変換データを減ずる(ステップS202)。
【0049】
次に、乗算器24は、減算器23の出力データにMデータを乗ずる(ステップS203)。
次に、シフタ25は、乗算器24の出力データを、デコーダ21の出力データに応じた量だけシフトする(ステップS204)。
次に、加算器26は、レジスタ22の出力データである第1の変換データにシフタ25の出力データを加え、入力データに応じたガンマ変換データとして出力する(ステップS205)。
このように、ガンマ変換回路10は、入力データに応じた出力データ(ガンマ変換データ)を出力することができる。
【0050】
次に、入力データとして「16’h0009」が入力された場合のガンマ変換回路10の動作について、具体的に説明する。
まず、プライオリティエンコーダ11は、入力データ「16’h0009」を入力すると、Lデータ「4’h3」をビット抽出部12、テーブルアドレス作成部13、及び、デコーダ21に出力すると共に、ローレベルのzero信号をマルチプレクサ15に出力する。
【0051】
ビット抽出部12は、Lデータ「4’h3」を入力すると、入力データ「16’h0009」のビット番号2〜1である「2’b00」をNデータとしてテーブルアドレス作成部13に出力する。さらに、ビット抽出部12は、入力データ「16’h0009」のビット番号0を16ビットにゼロ拡張した「16’h0001」をMデータとして乗算器24に出力する。このMデータ「16’h0001」が、式(2)の「Δx」に相当する。
【0052】
テーブルアドレス作成部13は、Lデータ「4’h3」及びNデータ「2’b00」を入力すると、Lデータ「4’h3」を上位としNデータ「2’b00」を下位として結合した「6’b001100」を第1のテーブルアドレスとして変換テーブル格納部14に出力する。さらに、テーブルアドレス作成部13は、所定時間経過後に、「6’b001100」をインクリメントした「6’b001101」を第2のテーブルアドレスとして変換テーブル格納部14に出力する。
【0053】
変換テーブル格納部14は、第1のテーブルアドレス「6’b001100」を入力すると、第1のテーブルアドレス「6’b001100」に対応する第1の変換データy0008を出力する。さらに、変換テーブル格納部14は、所定時間経過後に、第2のテーブルアドレス「6’b001101」を入力すると、第2のテーブルアドレス「6’b001101」に対応する第2の変換データy000aを出力する。
【0054】
マルチプレクサ15は、zero信号がローレベルであるため、変換テーブル格納部14が出力する第1の変換データy7を選択出力する。さらに、マルチプレクサ16は、所定時間経過後に、変換テーブル格納部14が出力する第2の変換データy8を選択出力する。
【0055】
デコーダ21は、Lデータ「4’h3」を入力すると、「4’h3」から2を減算した「4’h1」をシフタ25に出力する。2の「4’h1」乗(21)が、式(2)の「d」に相当する。
レジスタ22は、マルチプレクサ15が選択出力する第1の変換データy7を所定時間保持する。この第1の変換データy7が、式(2)の「ya」に相当する。
【0056】
減算器23は、マルチプレクサ15が出力する第2の変換データy8からレジスタ22が保持する第1の変換データy7の値を減じて出力する。この減算器23の出力データが、式(2)の「Δy」に相当する。
乗算器24は、減算器23の出力データである(y8−y7)にMデータ「16’h0001」を乗じて出力する。この乗算器24の出力データ(ここでは、(y8−y7)×1)が、式(2)の「Δy×Δx」に相当する。
【0057】
シフタ25は、乗算器24の出力データ(ここでは、(y8−y7)×1)を、デコーダ21の出力データ「4’h1」に応じ、1ビット右シフトして出力する。このシフタ25の出力データ(ここでは、(y8−y7)×1/2)が、式(2)の「Δy×Δx×1/d」に相当する。
加算器26は、レジスタ22が保持する第1の変換データy7にシフタ25の出力データ(ここでは、(y8−y7)×1/2)を加えて出力する。この加算器26が出力するデータが、式(2)の「ya+Δy×Δx×1/d」に相当する。
図9は、本例における線形補間を示す図である。このように、ガンマ変換回路10は、入力データ「16’h0009」に応じた出力データ(ガンマ変換データ)を出力することができる。
【0058】
次に、ガンマ変換回路10の出力データと式(1)によって算出される値との間の誤差について、図10を参照しながら説明する。図10は、ガンマ変換回路10の出力データと式(1)によって算出される値との間の誤差を示す図である。図10に示すように、ガンマ変換回路10の出力データと式(1)によって算出される値との間の誤差は、最大で約73であり、図29に示すガンマ変換回路80の誤差(約130)の約1.78分の1となっている。
【0059】
このように、本実施形態によれば、変換テーブル格納部14の記憶容量を小さくすることができる。本実施形態においては、変換テーブル格納部14の記憶容量は59ワードであり、ガンマ変換回路70の変換テーブル格納部71の記憶容量(65536ワード)の約1110分の1に低減することができ、ガンマ変換回路80の変換テーブル格納部81の記憶容量(4096ワード)の約69分の1に低減することができる。また、本実施形態によれば、出力データの誤差をガンマ変換回路80の誤差の約1.78分の1に低減することができる。
【0060】
なお、ガンマ変換回路10をCPUとプログラムによって構成することができる。その場合には、図3〜図5に示す変換テーブルのサイズが59ワードと小さいため、CPUに内蔵されているキャッシュメモリを変換テーブル格納部14とし、キャッシュメモリに変換テーブルを格納することができ、ガンマ変換を高速に実現することが可能となる。
【0061】
また、本実施形態においては、ビット抽出部12が、入力データのビット番号(L−1)〜(L−2)の2ビットをNデータとして抽出することとしているが、入力データのビット番号(L−1)〜(L−3)の3ビットをNデータとして抽出することとしても良いし、入力データのビット番号(L−1)〜(L−4)の4ビットをNデータとして抽出することとしても良い。このように、Nデータのビット幅を増やすことにより、出力データの誤差をより小さくすることができる。
また、本実施形態においては、入力データを16ビット幅とし、出力データを12ビット幅としているが、これらのデータを他のビット幅としても良い。
【0062】
次に、本実施形態において用いる変換テーブルの作成方法について説明する。ガンマ変換の変換テーブルを作成する際に、式(1)において用いるγの値が与えられれば、変換データの値を計算することができる。また、γ補正の特性が、γの値ではなく、等間隔の入力に対する出力を格納した線型テーブル(例えば、入力データを8ビットとしたときの256ワードのテーブル)によって与えられることもある。このような場合には、線型テーブルから一旦γの値を求めるか、又は、ソフトウエア体系を変更して、始めからγの値が与えられるようにしなければならず、システム開発に要する労力が増加してしまうという問題があった。しかしながら、以下に述べる方法によれば、従来の線型テーブルに基づいて、本実施形態において用いる変換テーブルを容易に作成することができる。
【0063】
この変換テーブルの作成方法は、次の原理を利用している。
x=2-A・Bの形式で表せるときに、
Figure 0003757884
即ち、x=2-A・Bのガンマ変換値は、2-Aのガンマ変換値とB1/γのガンマ変換値との積で表すことができる。
【0064】
本実施形態において用いる変換テーブルに格納するデータの値を求めるには、以下の操作を行う。
従来の線型テーブルのデータを使用できる範囲においては、それらのデータをそのまま用いる。
従来の線型テーブルのデータを使用できない範囲においては、まず、入力データのビット数と等しいビット数を有するデータを、自然数Aと実数Bとを用いて2-A・Bの形式で表せるように、2つの項に分解する。次に、従来の線型テーブルから、2つの項2-A、Bのそれぞれに対応する2つの変換データ2-A/γ、B1/γを読み出す。さらに、2つの変換データの乗算を行うことにより、2-A・Bの形式で表したデータの変換データ(2-A・B)1/γを求める。複数のデータについてこれらの操作を繰り返すことにより、変換テーブルに格納すべき変換データを求めることができる。
【0065】
実際に、入力データが16ビットである場合に、8ビットの入力データに対応した256ワードの線型テーブルに基づいて変換テーブルを作成する例について説明する。
例えば、入力データが(0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0)である場合には、8ビットの線型テーブルにおけるアドレス(0,0,1,0,1,0,0,0)に対応する変換値を読み取れば良い。
一方、入力データが(0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0)以下である場合には、8ビットの線型テーブルから変換値を読み取ることができない。そこで、入力データが(0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0)より小さい場合には、次の関係を利用する。
x=(0,0,0,0,0,0,x9,x8,x7,0,0,0,0,0,0,0)は、
B=(x9,x8,x7,0,0,0,0,0,0,0,0,0,0,0,0,0)と、
-6=(0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0)との積で表されるので(ここでは、A=6とした)、
y(x)=y(0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0)
・y(x9,x8,x7,0,0,0,0,0,0,0,0,0,0,0,0,0)
この式において、右辺の2つの項に関する変換データは、従来の線型テーブルから読み取ることができる。
【0066】
一般に、2-i≦x<2-(i-1)の範囲で該当する入力値は、次の4つである。
(1)2-i
(2)2-i+1×2-(i+2)
(3)2-i+2×2-(i+2)=2-i+2-(i+1)
(4)2-i+3×2-(i+2)=2-i+2-(i+1)+2-(i+2)
【0067】
このような入力値を大きい方から並べると、
最上位ビットが最初の「1」である場合には、
(1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0)
(1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
(1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0)
(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
【0068】
上位から2番目のビットが最初の「1」である場合には、
(0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0)
(0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0)
(0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0)
(0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
と続いて、
【0069】
上位から14番目のビットが最初の「1」である場合には、
(0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1)
(0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0)
(0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1)
(0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0)
【0070】
上位から15番目のビットが最初の「1」である場合には、
(0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1)
(0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0)
【0071】
最下位ビットが最初の「1」である場合には、
(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1)
全てのビットが「0」である場合には、
(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
【0072】
このように、最上位の「1」であるビットの位置と、それに続く2ビットによって入力値が定まる。そこで、既に説明したように、入力値において最上位の「1」であるビットの位置を表す4ビットのデータLと、それに続く2ビットのデータNとを結合したデータ{L,N}を、アドレスとして用いることができる。なお、変換テーブルには格納しないが、入力値が「0」である場合には、明らかに変換値も「0」とする。また、入力値が「1」である場合には、変換値も「1」とする。
【0073】
この例においては、1>x≧2-6の範囲について8ビットの線型テーブルの値を読み取った後、A=6として2-6>x≧2-12の範囲を求め、次にA=12として2-12>x≧2-18の範囲を求めることができる。これにより、乗算等の簡単な計算のみで変換値を求めることができるので、パーソナルコンピュータ等を用いて高速に計算が可能である。また、ソフトウエア体系を変更する必要もない。
【0074】
次に、本発明の第2の実施形態について説明する。図11は、本発明の第2の実施形態に係るデータ変換回路の構成を示す図である。本実施形態は、本発明をガンマ変換回路に適用したものである。本実施形態においては、入力データは16ビット幅であり、出力データは12ビット幅であるものとする。
図11において、ガンマ変換回路30は、プライオリティエンコーダ31と、第1ビット抽出部32と、第2テーブル格納部33と、テーブルアドレス作成部34と、変換テーブル格納部35と、線形補間部40とを具備している。また、線形補間部40は、第2ビット抽出部41と、第3テーブル格納部42と、第4テーブル格納部43と、レジスタ44と、減算器45と、補正項算出部46と、加算器47とを含んでいる。
【0075】
プライオリティエンコーダ31は、16ビット幅の入力データを入力し、入力データ中の最上位に位置する「1」のビットを検出し、検出したビットのビット番号を4ビット幅のjデータとして出力する。
第1ビット抽出部32は、入力データ及びjデータを入力し、入力データ中のビット番号(j−1)〜(j−4)の4ビットを抽出し、抽出した4ビットをxiデータとして出力する。
【0076】
第2テーブル格納部33は、4ビットのxiデータを2ビット幅のrepiデータに変換するテーブルを格納しており、xiデータが「4’h0」〜「4’h2」の場合には、「2’b00」をrepiデータとして出力し、xiデータが「4’h3」〜「4’h6」の場合には、「2’b01」をrepiデータとして出力し、xiデータが「4’h7」〜「4’ha」の場合には、「2’b10」をrepiデータとして出力し、xiデータが「4’hb」〜「4’hf」の場合には、「2’b11」をrepiデータとして出力する。
【0077】
テーブルアドレス作成部34は、4ビット幅のjデータ及び2ビット幅のrepiデータを入力し、jデータを上位としrepiデータを下位として結合して得られた6ビットの第1のテーブルアドレスを出力し、所定時間経過後に、jデータとrepiデータを結合して得られたデータをインクリメント(又はデクリメント)した第2のテーブルアドレスを出力する。
変換テーブル格納部35は、16ビット幅の入力データをガンマ変換した12ビット幅の変換データをテーブルアドレスに対応させた変換テーブルを格納しており、第1及び第2のテーブルアドレスに応じて第1及び第2の変換データを出力する。
【0078】
線形補間部40は、変換テーブル格納部35が出力する第1及び第2の変換データに対して線形補間処理を行う。
第2ビット抽出部41は、入力データ及びjデータを入力し、入力データ中のビット番号(j−5)〜0の(j−4)ビットを抽出し、抽出したデータをxrデータとして出力する。
【0079】
第3テーブル格納部42は、xiデータを所定のデータ(ddデータ)に変換するテーブルを格納しており、xiデータが「4’h0」の場合には、「0」をddデータとして出力し、xiデータが「4’h1」の場合には、「1」をddデータとして出力し、xiデータが「4’h2」の場合には、「2」をddデータとして出力し、xiデータが「4’h3」の場合には、「0」をddデータとして出力する。また、第3テーブル格納部42は、xiデータが「4’h4」の場合には、「1」をddデータとして出力し、xiデータが「4’h5」の場合には、「2」をddデータとして出力し、xiデータが「4’h6」の場合には、「3」をddデータとして出力し、xiデータが「4’h7」の場合には、「0」をddデータとして出力する。
【0080】
また、第3テーブル格納部42は、xiデータが「4’h8」の場合には、「1」をddデータとして出力し、xiデータが「4’h9」の場合には、「2」をddデータとして出力し、xiデータが「4’ha」の場合には、「3」をddデータとして出力し、xiデータが「4’hb」の場合には、「0」をddデータとして出力する。また、第3テーブル格納部42は、xiデータが「4’hc」の場合には、「1」をddデータとして出力し、xiデータが「4’hd」の場合には、「2」をddデータとして出力し、xiデータが「4’he」の場合には、「3」をddデータとして出力し、xiデータが「4’hf」の場合には、「4」をddデータとして出力する。
【0081】
第4テーブル格納部43は、xiデータを所定のデータ(spanデータ)に変換するテーブルを格納しており、xiデータが「4’h0」〜「4’h2」の場合には、「3」をspanデータとして出力し、xiデータが「4’h3」〜「4’ha」の場合には、「4」をspanデータとして出力し、xiデータが「4’hb」〜「4’hf」の場合には、「5」をspanデータとして出力する。
【0082】
図12は、入力データ、入力データを所定の幅に分割したレンジ、jデータ、ddデータ、spanデータ、repiデータ、テーブルアドレス、及び、変換データの対応を示す図である。図12において、y1000は、入力データ「16’h1000」をガンマ変換した12ビット幅のデータであり、y1300は、入力データ「16’h1300」をガンマ変換した12ビット幅のデータであり、y1700は、入力データ「16’h1700」をガンマ変換した12ビット幅のデータであり、y1b00は、入力データ「16’h1b00」をガンマ変換した12ビット幅のデータであり、y2000は、入力データ「16’h2000」をガンマ変換した12ビット幅のデータである。
【0083】
図12に示すように、例えば、入力データが「16’h1000」の場合に、テーブルアドレスは、「6’b110000」となり、入力データが「16’h1100」の場合にも、テーブルアドレスは、「6’b110000」となる。この場合、変換テーブル格納部34は、入力データ「16’h1000」をガンマ変換した変換データy1000をテーブルアドレス「6’b110000」に対応させて格納し、入力データ「16’h1100」をガンマ変換した変換データは格納しない。このように、複数の入力データから同一のテーブルアドレスが生成される場合には、変換テーブル格納部34は、複数の入力データの内の最小の入力データをガンマ変換した変換データのみを複数の入力データから生成されるテーブルアドレスに対応させて格納する。
【0084】
なお、図12に示すように、変換データ格納部35は、入力データの「16’h1000」〜「16’h2000」のレンジにおいて、入力データ「16’h1000」に対応する変換データy1000、並びに、「16’h1000」〜「16’h2000」のレンジを3:4:4:5に分割する入力データ「16’h1300」、「16’h1700」、及び、「16’h1b00」にそれぞれ対応する変換データy1300、y1700、及び、y1b00を格納することとなる。
【0085】
ここで、入力データの「16’h1000」〜「16’h1300」のレンジをrep0とし、入力データの「16’h1300」〜「16’h1700」のレンジをrep1とし、入力データの「16’h1700」〜「16’h1b00」のレンジをrep2とし、入力データの「16’h1b00」〜「16’h2000」のレンジをrep3とすると、repiデータは、入力データが属するレンジのrep番号を示す。
【0086】
また、spanデータは、入力データが属するレンジの他の3つのレンジに対する比率となる。例えば、入力データが「16’h1001」の場合には、spanデータは、入力データが属するレンジであるrep0のrep1〜rep3に対する比率である「3」となる。
【0087】
再び図11を参照すると、レジスタ44は、変換テーブル格納部35の出力データを所定の時間保持すると共に、保持しているデータをy_tblデータとして出力する。
減算器45は、変換テーブル格納部35の出力データからレジスタ44の出力データを減じたデータをstep_yデータとして出力する。
補正項算出部46は、ddデータ、spanデータ、jデータ、xrデータ、及び、step_yデータを入力し、dyデータを次式によって算出して出力する。加算器47は、dyデータをy_tblデータに加えて出力する。
【数3】
Figure 0003757884
【0088】
次に、線形補間部40が行う線形補間処理について図13を参照しながら説明する。図13は、線形補間部40が行う線形補間処理の原理を示す図である。図13に示すように、線形補間部40は、入力データxに対応する変換データyを次式によって算出することができる。
【数4】
Figure 0003757884
【0089】
次に、ガンマ変換回路のガンマ変換処理について、図11、図14、及び、図15を参照しながら説明する。図14は、ガンマ変換回路のガンマ変換処理を示すフローチャートであり、図15は、ガンマ変換回路の線形補間部の線形補間処理を示すフローチャートである。
【0090】
図14及び図15の処理を開始すると、プライオリティエンコーダ31は、入力データを入力し、jデータを出力する(ステップS301)。
次に、第1ビット抽出部32は、入力データ及びjデータを入力し、xiデータを出力する(ステップS302)。
次に、第2テーブル格納部33は、xiデータを入力し、repiデータを出力する(ステップS303)。
【0091】
次に、テーブルアドレス作成部34は、jデータ及びrepiデータを入力し、第1のテーブルアドレスを出力する(ステップS304)。
次に、変換テーブル格納部35は、第1のテーブルアドレスに応じて、第1の変換データを出力し、レジスタ44はこれを保持する(ステップS305)。
【0092】
次に、テーブルアドレス作成部34は、第1のテーブルアドレスをインクリメント(又はデクリメント)した第2のテーブルアドレスを出力する(ステップS305)。
次に、変換テーブル格納部35は、第2のテーブルアドレスに応じて、第2の変換データを出力する(ステップS306)。
次に、線形補間部40は、第1の変換データ及び第2の変換データに基づいて、線形補間処理を開始する(ステップS308)。
【0093】
線形補間処理を開始すると、線形補間部40の第2ビット抽出部41は、入力データ及びjデータを入力し、xrデータを出力する(ステップS401)。
次に、第3テーブル格納部42は、xiデータを入力し、ddデータを出力する(ステップS402)。
次に、第4テーブル格納部42は、xiデータを入力し、spanデータを出力する(ステップS403)。
【0094】
次に、減算器45は、変換テーブル格納部35の出力データである第2の変換データからレジスタ44の出力データである第1の変換データを減ずる(ステップS404)。
【0095】
次に、補正項算出部46は、jデータ、xrデータ、ddデータ、spanデータ、及び、step_yデータを入力し、dyデータを出力する(ステップS405)。
次に、加算器47は、y_tblデータにdyデータを加え、入力データに応じたガンマ変換データとして出力する(ステップS406)。
このように、ガンマ変換回路30は、入力データに応じた出力データ(ガンマ変換データ)を出力することができる。
【0096】
次に、ガンマ変換回路30の出力データと式(1)によって算出される値との間の誤差について、図16を参照しながら説明する。図16は、ガンマ変換回路30の出力データと式(1)によって算出される値との間の誤差を示す図である。図16に示すように、ガンマ変換回路30の出力データと式(1)によって算出される値との間の誤差は、最大で約58程度であり、図29に示すガンマ変換回路80の誤差(約130)の約2.24分の1となっており、図10に示すガンマ変換回路10の誤差(約73)の約1.25分の1となっている。
【0097】
このように、本実施形態によれば、変換テーブル格納部35が格納する変換テーブルのサイズをガンマ変換回路10の変換テーブル格納部14が格納する変換テーブルのサイズと同一に保ったまま、すなわち変換テーブル格納部35の記憶容量を変換テーブル格納部14の記憶容量と同一に保ったまま、ガンマ変換回路10より誤差を小さくすることができる。
【0098】
なお、ガンマ変換回路30をCPUとプログラムによって構成することができる。その場合には、変換テーブルのサイズが小さいため、CPUに内蔵されているキャッシュメモリを変換テーブル格納部35とし、キャッシュメモリに変換テーブルを格納することができ、ガンマ変換を高速に実現することが可能となる。
【0099】
また、本実施形態においては、第1ビット抽出部32が、入力データのビット番号(L−1)〜(L−4)の4ビットをxiデータとして抽出することとしているが、入力データのビット番号(L−1)〜(L−3)の3ビットをxiデータとして抽出することとしても良いし、入力データのビット番号(L−1)〜(L−5)の5ビットをxiデータとして抽出することとしても良い。xiデータのビット幅を増やすこととすると、出力データの誤差をより小さくすることができる。
また、本実施形態においては、入力データを16ビット幅とし、出力データを12ビット幅としているが、これらのデータを他のビット幅としても良い。
【0100】
また、本実施形態においては、jデータに基づいてrepiデータを出力するために第2テーブル格納部32を用いているが、第2テーブル格納部32に代えてデコーダを用いることとしても良い。同様に、第3テーブル格納部42及び第4テーブル格納部43に代えてデコーダを用いることとしても良い。
【0101】
次に、本発明の第3の実施形態について説明する。図17は、本発明の第3の実施形態に係るデータ変換回路の構成を示す図である。本実施形態は、本発明をガンマ変換回路に適用したものである。本実施形態においては、入力データは16ビット幅であり、出力データは12ビット幅であるものとする。
図17において、ガンマ変換回路50は、プライオリティエンコーダ51及び53と、ビット抽出部52と、テーブルアドレス作成部54と、変換テーブル格納部55と、マルチプレクサ15と、線形補間部60とを具備している。また、線形補間部60は、デコーダ61と、レジスタ22と、減算器23と、乗算器24と、シフタ25と、加算器26とを含んでいる。
【0102】
プライオリティエンコーダ51は、16ビット幅の入力データを入力し、入力データ中の最上位に位置する「1」のビットを検出し、検出したビットのビット番号を4ビット幅のL1データとして出力する。また、プライオリティエンコーダ51は、入力データ中に「1」のビットがない場合、すなわち入力データが「16’h0000」である場合には、「4’h0」のL1データを出力すると共に、ハイレベルのzero信号を出力する。
【0103】
ビット抽出部52は、入力データ及びL1データを入力し、入力データ中のビット番号(L1−1)〜(L1−3)の3ビットを抽出し、抽出した3ビットを出力する。なお、ビット抽出部52は、L1データの値が「4’h3」より小さい場合には、ビット番号(L1−1)〜0を抽出し、下位に所定数の「0」を結合した3ビットデータを出力する。例えば、ビット抽出部52は、入力データが「16’h0003」であり、L1データが「4’h1」である場合には、入力データ「16’h0003」のビット番号0である「1」の下位に「00」を結合した「3’b100」を出力する。
【0104】
プライオリティエンコーダ53は、ビット抽出部52から3ビット幅のデータを入力し、入力したデータ中の最上位に位置する「1」のビットを検出し、検出したビットのビット番号を2ビット幅のL2データとして出力する。
テーブルアドレス作成部53は、4ビット幅のL1データ及び2ビット幅のL2データを入力し、L1データを上位としL2データを下位として結合して得られた6ビットの第1のテーブルアドレスを出力し、所定時間経過後に、L1データとL2データを結合して得られたデータをインクリメント(又はデクリメント)した第2のテーブルアドレスを出力する。
変換テーブル格納部55は、16ビット幅の入力データをガンマ変換した12ビット幅の変換データをテーブルアドレスに対応させた変換テーブルを格納しており、第1及び第2のテーブルアドレスに応じて第1及び第2の変換データを出力する。
【0105】
図18は、入力データ、L1データ、L2データ、テーブルアドレス、入力データの増分、及び、変換データの対応を示す図である。図18において、y0001は、入力データ「16’h0001」をガンマ変換した12ビット幅のデータであり、y0002は、入力データ「16’h0002」をガンマ変換した12ビット幅のデータであり、y0003は、入力データ「16’h0003」をガンマ変換した12ビット幅のデータであり、y0004は、入力データ「16’h0004」をガンマ変換した12ビット幅のデータである。また、y0005は、入力データ「16’h0005」をガンマ変換した12ビット幅のデータであり、y0006は、入力データ「16’h0006」をガンマ変換した12ビット幅のデータであり、y0007は、入力データ「16’h0007」をガンマ変換した12ビット幅のデータであり、y0008は、入力データ「16’h0008」をガンマ変換した12ビット幅のデータである。
【0106】
また、y0009は、入力データ「16’h0009」をガンマ変換した12ビット幅のデータであり、y000aは、入力データ「16’h000a」をガンマ変換した12ビット幅のデータであり、y000cは、入力データ「16’h000c」をガンマ変換した12ビット幅のデータであり、y0010は、入力データ「16’h0010」をガンマ変換した12ビット幅のデータであり、yc000は、入力データ「16’hc000」をガンマ変換した12ビット幅のデータである。
【0107】
図18に示すように、例えば、入力データが「16’h000a」の場合に、テーブルアドレスは、「6’b001110」となり、入力データが「16’h000b」の場合にも、テーブルアドレスは、「6’b001110」となる。この場合、変換テーブル格納部55は、入力データ「16’h000a」をガンマ変換した変換データy000aをテーブルアドレス「6’b001100」に対応させて格納し、入力データ「16’h000b」をガンマ変換した変換データは格納しない。このように、複数の入力データから同一のテーブルアドレスが生成される場合には、変換テーブル格納部55は、複数の入力データの内の最小の入力データをガンマ変換した変換データのみを複数の入力データから生成されるテーブルアドレスに対応させて格納する。
【0108】
図19〜図21は、入力データ、テーブルアドレス、及び、変換データの対応を示す図である。図19〜図21において、対応する変換データが変換テーブル格納部55に格納されていない入力データの表示は、省かれている。図19〜図21に示すように、入力データ(本実施形態においては、「16’h0000」〜「16’hffff」の65536通りに変化する)に対して、変換データは、y0001〜yc000の59データとなる。従って、変換テーブル格納部14は、59ワード(ここでは、1ワード=12ビット)の記憶容量を有すれば良いこととなる。
【0109】
再び図9を参照すると、線形補間部60は、変換テーブル格納部55が出力する第1及び第2の変換データに対して線形補間を行う。
デコーダ61は、L2データが「2’b00」の場合には、(L1−3)を出力し、L2データが「2’b01」、「2’b10」、又は、「2’b11」の場合には、(L1+L2−4)を出力する。
【0110】
次に、ガンマ変換回路のガンマ変換処理について、図17、及び、図22〜図24を参照しながら説明する。図22〜図23は、ガンマ変換回路のガンマ変換処理を示すフローチャートであり、図24は、ガンマ変換回路の線形補間部の線形補間処理を示すフローチャートである。
【0111】
図22〜図24の処理を開始すると、プライオリティエンコーダ51は、入力データを入力し、L1データを出力する(ステップS501)。
次に、ビット抽出部52は、入力データ及びL1データを入力し、入力データのビット番号(L−1)〜(L−3)の3ビットデータ及びMデータを出力する(ステップS502)。
次に、プライオリティエンコーダ53は、入力データのビット番号(L−1)〜(L−3)の3ビットデータを入力し、L2データを出力する(ステップS503)。
次に、テーブルアドレス作成部13は、L1データ及びL2データを入力し、第1のテーブルアドレスを出力する(ステップS504)。
【0112】
次に、変換テーブル格納部55は、第1のテーブルアドレスに応じて、第1の変換データを出力する(ステップS505)。
次に、マルチプレクサ15は、zero信号の値に応じて、0又は第1の変換データを選択出力する(ステップS506)。
次に、テーブルアドレス作成部54は、第1のテーブルアドレスをインクリメント(又はデクリメント)した第2のテーブルアドレスを出力する(ステップS507)。
【0113】
次に、変換テーブル格納部55は、第2のテーブルアドレスに応じて、第2の変換データを出力する(ステップS508)。
次に、マルチプレクサ15は、zero信号の値に応じて、0又は第2の変換データを選択出力する(ステップS509)。
次に、線形補間部60は、第1の変換データ及び第2の変換データに基づいて、線形補間処理を開始する(ステップS510)。
【0114】
線形補間処理を開始すると、線形補間部60のデコーダ61は、L1データ及びL2データからシフタ25が行うシフト処理のシフト量を算出する(ステップS601)。
次に、レジスタ22は、第1の変換データを所定の時間保持する(ステップS602)。
次に、減算器23は、マルチプレクサ15の出力データである第2の変換データからレジスタ22の出力データである第1の変換データを減ずる(ステップS603)。
【0115】
次に、乗算器24は、減算器23の出力データにMデータを乗ずる(ステップS604)。
次に、シフタ25は、乗算器24の出力データを、デコーダ21の出力データに応じた量だけシフトする(ステップS605)。
次に、加算器26は、レジスタ22の出力データである第1の変換データにシフタ25の出力データを加え、入力データに応じたガンマ変換データとして出力する(ステップS606)。
このように、ガンマ変換回路50は、入力データに応じた出力データ(ガンマ変換データ)を出力することができる。
【0116】
次に、ガンマ変換回路50の出力データと式(1)によって算出される値との間の誤差について、図25を参照しながら説明する。図25は、ガンマ変換回路50の出力データと式(1)によって算出される値との間の誤差を示す図である。図25に示すように、ガンマ変換回路50の出力データと式(1)によって算出される値との間の誤差は、最大で約150程度である。
【0117】
このように、本実施形態によれば、変換データ格納部55の記憶容量を小さくすることができる
【0118】
なお、ガンマ変換回路50をCPUとプログラムによって構成することができる。その場合には、変換テーブルのサイズが小さいため、CPUに内蔵されているキャッシュメモリを変換テーブル格納部55とし、キャッシュメモリに変換テーブルを格納することができ、ガンマ変換を高速に実現することが可能となる。
【0119】
また、本実施形態においては、入力データを16ビット幅とし、出力データを12ビット幅としているが、これらのデータを他のビット幅としても良い。
【0120】
【発明の効果】
以上述べた様に、本発明によれば、変換データを格納する回路の記憶容量を小さくすると共に、出力データの誤差を小さくすることができる。
【図面の簡単な説明】
【図1】 本発明の第1の実施形態に係るガンマ変換回路の構成を示す図である。
【図2】 本発明の第1の実施形態における入力データ、Lデータ、Nデータ、テーブルアドレス、入力データの増分、及び、変換データの対応を示す図である。
【図3】 本発明の第1の実施形態における入力データ、テーブルアドレス、及び、変換データの対応を示す図である。
【図4】 本発明の第1の実施形態における入力データ、テーブルアドレス、及び、変換データの対応を示す図である。
【図5】 本発明の第1の実施形態における入力データ、テーブルアドレス、及び、変換データの対応を示す図である。
【図6】 本発明の第1の実施形態における線形補間処理の原理を示す図である。
【図7】 本発明の第1の実施形態に係るガンマ変換回路の動作を示すフローチャートである。
【図8】 本発明の第1の実施形態に係るガンマ変換回路の線形補間処理を示すフローチャートである。
【図9】 本発明の第1の実施形態における線形補間処理による入力データ「16’h0009」に対応するガンマ変換データの算出の原理を示す図である。
【図10】 本発明の第1の実施形態に係るガンマ変換回路の出力データの誤差を示す図である。
【図11】 本発明の第2の実施形態に係るガンマ変換回路の構成を示す図である。
【図12】 本発明の第2の実施形態における入力データ、入力データのレンジ、jデータ、ddデータ、spanデータ、repiデータ、テーブルアドレス、及び、変換データの対応を示す図である。
【図13】 本発明の第2の実施形態における線形補間処理の原理を示す図である。
【図14】 本発明の第2の実施形態に係るガンマ変換回路の動作を示すフローチャートである。
【図15】 本発明の第2の実施形態に係るガンマ変換回路の線形補間処理を示すフローチャートである。
【図16】 本発明の第2の実施形態に係るガンマ変換回路の出力データの誤差を示す図である。
【図17】 本発明の第3の実施形態に係るガンマ変換回路の構成を示す図である。
【図18】 本発明の第3の実施形態における入力データ、L1データ、L2データ、テーブルアドレス、入力データの増分、及び、変換データの対応を示す図である。
【図19】 本発明の第3の実施形態における入力データ、テーブルアドレス、及び、変換データの対応を示す図である。
【図20】 本発明の第3の実施形態における入力データ、テーブルアドレス、及び、変換データの対応を示す図である。
【図21】 本発明の第3の実施形態における入力データ、テーブルアドレス、及び、変換データの対応を示す図である。
【図22】 本発明の第3の実施形態に係るガンマ変換回路の動作を示すフローチャートである。
【図23】 本発明の第3の実施形態に係るガンマ変換回路の動作を示すフローチャートである。
【図24】 本発明の第3の実施形態に係るガンマ変換回路の線形補間処理を示すフローチャートである。
【図25】 本発明の第1の実施形態に係るガンマ変換回路の出力データの誤差を示す図である。
【図26】 ガンマ変換のグラフを示す図である。
【図27】 従来のガンマ変換回路の構成を示す図である。
【図28】 従来のガンマ変換回路の構成を示す図である。
【図29】 図28のガンマ変換回路の出力データの誤差を示す図である。
【符号の説明】
10、30、50 ガンマ変換回路
11、31、51、53 プライオリティエンコーダ
12、52 ビット抽出部
13、34、54 テーブルアドレス作成部
14、35、55 変換テーブル格納部
15 マルチプレクサ
20、40、60 線形補間部
21、61 デコーダ
22、44 レジスタ
23、45 減算器
24 乗算器
25 シフタ
26、47 加算器
32 第1ビット抽出部
33 第2テーブル格納部
41 第2ビット抽出部
42 第3テーブル格納部
43 第4テーブル格納部
46 補正項算出部

Claims (32)

  1. 入力データを変換して出力データを生成するデータ変換方法であって、
    前記入力データ中の「1」であるビットの内で最上位に位置するビットのビット番号Lを示すmビット幅の第1のデータを求めるステップ(a)と、
    ビット番号(L−1)から(L−n)までのnビット幅の第2のデータを求めるステップ(b)と、
    前記第1のデータと前記第2のデータとを結合して、(m+n)ビット幅の第1のアドレスを生成するステップ(c)と、
    前記第1のアドレスをインクリメント又はデクリメントして、第2のアドレスを生成するステップ(d)と、
    入力データに所定の変換を施した変換データを前記入力データから生成した前記アドレスに対応して記憶している記憶手段により、前記第1のアドレスに対応する第1の変換データと、前記第2のアドレスに対応する第2の変換データとを読み出すステップ(e)と、
    前記ビット番号Lを示すmビット幅の第1のデータに基づいて、前記第1及び第2の変換データのシフト量を求め、前記シフト量に基づいて前記第1及び第2の変換データから前記出力データを生成するステップ(f)と、
    を具備するデータ変換方法。
  2. 前記ステップ(f)は前記第1及び第2の変換データの差に基づく値を前記シフト量でシフトした値を、前記第1の変換データに加算して補間処理をおこなうことで出力データを生成するステップであることを特徴とする請求項1記載のデータ変換方法。
  3. nが2、3、又は、4であることを特徴とする請求項1又は2記載のデータ変換方法。
  4. 入力データを変換して出力データを生成するデータ変換方法であって、
    前記入力データ中の「1」であるビットの内で最上位に位置するビットのビット番号Lを示すmビット幅の第1のデータを求めるステップ(a)と、
    前記入力データの中から、ビット番号(L−1)から(L−n)までのnビット幅の第2のデータを抽出し、前記第2のデータに所定の操作を施すことによりkビット幅の第3のデータを求めるステップ(b)と、
    前記第1のデータと前記第3のデータとを結合して、(m+k)ビット幅の第1のアドレスを生成するステップ(c)と、
    前記第1のアドレスをインクリメント又はデクリメントして、第2のアドレスを生成するステップ(d)と、
    入力データに所定の変換を施した変換データを前記入力データから生成した前記アドレスに対応して記憶している記憶手段により、前記第1のアドレスに対応する第1の変換データと、前記第2のアドレスに対応する第2の変換データとを読み出すステップ(e)と、
    前記ビット番号Lを示すmビット幅の第1のデータに基づいて、前記第1及び第2の変換データのシフト量を求め、前記シフト量に基づいて前記第1及び第2の変換データから前記出力データを生成するステップ(f)と、
    を具備するデータ変換方法。
  5. 前記ステップ(f)は前記第1及び第2の変換データの差に基づく値を前記シフト量でシフトした値を、前記第1の変換データに加算して補間処理をおこなうことで出力データを生成するステップであることを特徴とする請求項4記載のデータ変換方法。
  6. 前記ステップ(b)が、第i群に属するデータの数をViとしたときにV0<V1<…<VNとなるように、前記第2のデータ0〜(2n−1)をN群に分割することにより前記第3のデータを求めることを特徴とする請求項4又は5記載のデータ変換方法。
  7. nが3、4、又は、5であることを特徴とする請求項4乃至6記載のデータ変換方法。
  8. 入力データを変換して出力データを生成するデータ変換方法であって、
    前記入力データ中の「1」であるビットの内で最上位に位置するビットのビット番号Lを示すmビット幅の第1のデータを求めるステップ(a)と、
    前記入力データの中から、ビット番号(L−1)から(L−n)までのnビット幅の第2のデータを抽出し、前記第2のデータ中の「1」であるビットの内で最上位に位置するビットのビット番号を示すkビット幅の第3のデータを求めるステップ(b)と、
    前記第1のデータと前記第3のデータとを結合して、(m+k)ビット幅の第1のアドレスを生成するステップ(c)と、
    前記第1のアドレスをインクリメント又はデクリメントして、第2のアドレスを生成するステップ(d)と、
    入力データに所定の変換を施した変換データを前記入力データから生成した前記アドレスに対応して記憶している記憶手段により、前記第1のアドレスに対応する第1の変換データと、前記第2のアドレスに対応する第2の変換データとを読み出すステップ(e)と、
    前記第1及び第2の変換データに基づいて、前記出力データを生成するステップ(f)と、
    を具備するデータ変換方法。
  9. 前記ステップ(f)は前記第1及び第2の変換データに基づいて補間処理をおこなうことで出力データを生成するステップであることを特徴とする請求項8記載のデータ変換方法。
  10. nが3であることを特徴とする請求項8又は9記載のデータ変換方法。
  11. 前記補間処理が線形補間処理であることを特徴とする請求項2、3、5〜7、9〜10のいずれか1項記載のデータ変換方法。
  12. 前記所定の変換がガンマ変換であることを特徴とする請求項1〜9のいずれか1項記載のデータ変換方法。
  13. 前記入力データのビット数と等しいビット数を有するデータを、自然数Aと実数Bとを用いて2−A・Bの形式で表せるように、2つの項に分解するステップ(g)と、
    等間隔の複数のデータに前記所定の変換を施した変換データを記憶しているテーブルから、前記2つの項のそれぞれに対応する2つの変換データを読み出すステップ(h)と、
    前記2つの変換データの乗算を行うことにより、2−A・Bの形式で表したデータの変換データを求めるステップ(i)と、
    をさらに具備し、複数のデータについてステップ(g)〜(i)を繰り返すことにより、前記記憶手段に記憶すべき変換データを求める請求項12記載のデータ変換方法。
  14. 入力データを変換して出力データを生成するデータ変換回路であって、
    前記入力データ中の「1」であるビットの内で最上位に位置するビットのビット番号Lを示すmビット幅の第1のデータを求める第1の手段と、
    前記入力データ中のビット番号Lのデータに続くnビット幅の第2のデータを求める第2の手段と、
    前記第1のデータと前記第2のデータとを結合して、(m+n)ビット幅の第1のアドレスを生成し、前記第1のアドレスをインクリメント又はデクリメントして、第2のアドレスを生成する第3の手段と、
    入力データに所定の変換を施した変換データを前記入力データから生成した前記アドレスに対応して記憶する第4の手段と、
    前記第3の手段によって生成された第1のアドレスに対応する第1の変換データと、前記第3の手段によって生成された第2のアドレスに対応する第2の変換データとを前記第4の手段から読み出す第5の手段と、
    前記ビット番号Lを示すmビット幅の第1のデータに基づいて、前記第1及び第2の変換データのシフト量を求め、前記シフト量に基づいて前記第1及び第2の変換データから前記出力データを生成する第6の手段と、
    を具備するデータ変換回路。
  15. 前記第6の手段は、前記第1及び第2の変換データの差に基づく値を前記シフト量でシフトした値を、前記第1の変換データに加算して補間処理をおこなうことで出力データを生成する手段であることを特徴とする請求項14記載のデータ変換回路。
  16. 入力データを変換して出力データを生成するデータ変換回路であって、
    前記入力データ中の「1」であるビットの内で最上位に位置するビットのビット番号Lを示すmビット幅の第1のデータを求める第1の手段と、
    前記入力データの中から、ビット番号(L−1)から(L−n)までのnビット幅の第2のデータを抽出し、前記第2のデータに所定の操作を施すことによりkビット幅の第3のデータを求める第2の手段と、
    前記第1のデータと前記第3のデータとを結合して、(m+k)ビット幅の第1のアドレスを生成し、前記第1のアドレスをインクリメント又はデクリメントして、第2のアドレスを生成する第3の手段と、
    入力データに所定の変換を施した変換データを前記入力データから生成した前記アドレスに対応して記憶する第4の手段と、
    前記第1のアドレスに対応する第1の変換データと、前記第2のアドレスに対応する第2の変換データとを前記第4の手段から読み出す第5の手段と、
    前記ビット番号Lを示すmビット幅の第1のデータに基づいて、前記第1及び第2の変換データのシフト量を求め、前記シフト量に基づいて前記第1及び第2の変換データから前記出力データを生成する第6の手段と、
    を具備するデータ変換回路。
  17. 前記第6の手段は、前記第1及び第2の変換データの差に基づく値を前記シフト量でシフトした値を、前記第1の変換データに加算して補間処理をおこなうことで出力データを生成する手段であることを特徴とする請求項16記載のデータ変換回路。
  18. 前記第2の手段が、第i群に属するデータの数をViとしたときにV0<V1<…<VNとなるように、前記第2のデータ0〜(2n−1)をN群に分割することにより前記第3のデータを求めることを特徴とする請求項16乃至18記載のデータ変換回路。
  19. 入力データを変換して出力データを生成するデータ変換回路であって、
    前記入力データ中の「1」であるビットの内で最上位に位置するビットのビット番号Lを示すmビット幅の第1のデータを求める第1の手段と、
    前記入力データの中から、ビット番号(L−1)から(L−n)までのnビット幅の第2のデータを抽出し、前記第2のデータ中の「1」であるビットの内で最上位に位置するビットのビット番号を示すkビット幅の第3のデータを求める
    第2の手段と、
    前記第1のデータと前記第3のデータとを結合して、(m+k)ビット幅の第1のアドレスを生成し、前記第1のアドレスをインクリメント又はデクリメントして、第2のアドレスを生成する第3の手段と、
    入力データに所定の変換を施した変換データを前記入力データから生成した前記アドレスに対応して記憶する第4の手段と、
    前記第1のアドレスに対応する第1の変換データと、前記第2のアドレスに対応する第2の変換データとを前記第4の手段から読み出す第5の手段と、
    前記第1及び第2の変換データに基づいて、前記出力データを生成する第6の手段と、
    を具備するデータ変換回路。
  20. 前記第6の手段は、前記第1及び第2の変換データに基づいて補間処理をおこなうことで出力データを生成する手段であることを特徴とする請求項19記載のデータ変換回路。
  21. 前記補間処理が線形補間処理であることを特徴とする請求項15、17、18、20のいずれか1項記載のデータ変換回路。
  22. 前記所定の変換がガンマ変換であることを特徴とする請求項15、17、18、20、21のいずれか1項記載のデータ変換回路。
  23. 入力データを変換して出力データを生成するために用いるデータ変換プログラムであって、
    前記入力データ中の「1」であるビットの内で最上位に位置するビットのビット番号Lを示すmビット幅の第1のデータを求める手順(a)と、
    前記入力データ中のビット番号Lのデータに続くnビット幅の第2のデータを求める手順(b)と、
    前記第1のデータと前記第2のデータとを結合して、(m+n)ビット幅の第1のアドレスを生成する手順(c)と、
    前記第1のアドレスをインクリメント又はデクリメントして、第2のアドレスを生成する手順(d)と、
    入力アドレスに所定の変換を施した変換データを複数のアドレスに対応して記憶している記憶手段から、前記第1のアドレスに対応する第1の変換データと、
    前記第2のアドレスに対応する第2の変換データとを読み出す手順(e)と、
    前記ビット番号Lを示すmビット幅の第1のデータに基づいて、前記第1及び第2の変換データのシフト量を求め、前記シフト量に基づいて前記第1及び第2の変換データから前記出力データを生成する手順(f)と、
    を情報処理装置に実行させるデータ変換プログラム。
  24. 前記手順(f)は前記第1及び第2の変換データの差に基づく値を前記シフト量でシフトした値を、前記第1の変換データに加算して補間処理をおこなうことで出力データを生成する手順であることを特徴とする請求項23記載のデータ変換プログラム。
  25. 入力データを変換して出力データを生成するために用いるデータ変換プログラムであって、
    前記入力データ中の「1」であるビットの内で最上位に位置するビットのビット番号Lを示すmビット幅の第1のデータを求める手順(a)と、
    前記入力データの中から、ビット番号(L−1)から(L−n)までのnビット幅の第2のデータを抽出し、前記第2のデータに所定の操作を施すことによりkビット幅の第3のデータを求める手順(b)と、
    前記第1のデータと前記第3のデータとを結合して、(m+k)ビット幅の第1のアドレスを生成する手順(c)と、
    前記第1のアドレスをインクリメント又はデクリメントして、第2のアドレスを生成する手順(d)と、
    入力データに所定の変換を施した変換データを前記入力データから生成した前記アドレスに対応して記憶している記憶手段から、前記第1のアドレスに対応する第1の変換データと、前記第2のアドレスに対応する第2の変換データとを読み出す手順(e)と、
    前記ビット番号Lを示すmビット幅の第1のデータに基づいて、前記第1及び第2の変換データのシフト量を求め、前記シフト量に基づいて前記第1及び第2の変換データから前記出力データを生成する手順(f)と、
    を情報処理装置に実行させるデータ変換プログラム。
  26. 前記手順(f)は前記第1及び第2の変換データの差に基づく値を前記シフト量でシフトした値を、前記第1の変換データに加算して補間処理をおこなうことで出力データを生成する手順であることを特徴とする請求項25記載のデータ変換プログラム。
  27. 手順(b)が、第i群に属するデータの数をViとしたときにV0<V1<…<VNとなるように、前記第2のデータ0〜(2n−1)をN群に分割することにより前記第3のデータを求めることを特徴とする請求項26記載のデータ変換プログラム。
  28. 入力データを変換して出力データを生成するために用いるデータ変換プログラムであって、
    前記入力データ中の「1」であるビットの内で最上位に位置するビットのビット番号Lを示すmビット幅の第1のデータを求める手順(a)と、
    前記入力データの中から、ビット番号(L−1)から(L−n)までのnビット幅の第2のデータを抽出し、前記第2のデータ中の「1」で
    あるビットの内で最上位に位置するビットのビット番号を示すkビット幅の第3のデータを求める手順(b)と、
    前記第1のデータと前記第3のデータとを結合して、(m+k)ビット幅の第1のアドレスを生成する手順(c)と、
    前記第1のアドレスをインクリメント又はデクリメントして、第2のアドレスを生成する手順(d)と、
    入力データに所定の変換を施した変換データを前記入力データから生成した前記アドレスに対応して記憶している記憶手段から、前記第1のアドレスに対応する第1の変換データと、前記第2のアドレスに対応する第2の変換データとを読み出す手順(e)と、
    前記第1及び第2の変換データに基づいて、前記出力データを生成する手順(f)と、
    を情報処理装置に実行させるデータ変換プログラム。
  29. 前記手順(f)は前記第1及び第2の変換データに基づいて補間処理をおこなうことで出力データを生成する手順であることを特徴とする請求項25記載のデータ変換プログラム。
  30. 前記補間処理が線形補間処理であることを特徴とする請求項24,26,27,29のいずれか1項記載のデータ変換プログラム。
  31. 前記所定の変換がガンマ変換であることを特徴とする請求項23〜30記載のデータ変換プログラム。
  32. 前記入力データのビット数と等しいビット数を有するデータを、自然数Aと実数Bとを用いて2−A・Bの形式で表せるように、2つの項に分解する手順(g)と、
    等間隔の複数のデータに前記所定の変換を施すことにより得られた複数の変換データを記憶しているテーブルから、前記2つの項のそれぞれに対応する2つの変換データを読み出す手順(h)と、
    前記2つの変換データの乗算を行うことにより、2−A・Bの形式で表したデータの変換データを求める手順(i)と、
    を情報処理装置に実行させ、複数のデータについて手順(g)〜(i)を繰り返すことにより、前記記憶手段に記憶すべき変換データを求める請求項31記載のデータ変換プログラム。
JP2002073072A 2001-11-08 2002-03-15 データ変換方法、データ変換回路及びデータ変換プログラム Expired - Fee Related JP3757884B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002073072A JP3757884B2 (ja) 2001-11-08 2002-03-15 データ変換方法、データ変換回路及びデータ変換プログラム
US10/291,173 US7111028B2 (en) 2001-11-08 2002-11-08 Data conversion method, a data conversion circuit and a data conversion program

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2001343581 2001-11-08
JP2001-343581 2001-11-08
JP2002073072A JP3757884B2 (ja) 2001-11-08 2002-03-15 データ変換方法、データ変換回路及びデータ変換プログラム

Publications (2)

Publication Number Publication Date
JP2003209715A JP2003209715A (ja) 2003-07-25
JP3757884B2 true JP3757884B2 (ja) 2006-03-22

Family

ID=26624422

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002073072A Expired - Fee Related JP3757884B2 (ja) 2001-11-08 2002-03-15 データ変換方法、データ変換回路及びデータ変換プログラム

Country Status (2)

Country Link
US (1) US7111028B2 (ja)
JP (1) JP3757884B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7167888B2 (en) * 2002-12-09 2007-01-23 Sony Corporation System and method for accurately calculating a mathematical power function in an electronic device
JP4613702B2 (ja) * 2004-09-30 2011-01-19 日本電気株式会社 ガンマ補正、画像処理方法及びプログラム、並びにガンマ補正回路、画像処理装置、表示装置
CN100401743C (zh) * 2006-03-02 2008-07-09 熊猫电子集团有限公司 降低lcd显示失真的方法
CN102177539B (zh) * 2008-10-14 2014-07-23 杜比实验室特许公司 用于处理信号的设备和方法
TWI405158B (zh) * 2008-12-26 2013-08-11 Novatek Microelectronics Corp 可提高影像亮度並減少畫面失真之驅動方法及相關顯示裝置
KR102299880B1 (ko) * 2017-04-04 2021-09-09 에스케이하이닉스 주식회사 데이터 변환 장치 및 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4282578A (en) * 1980-03-17 1981-08-04 Burr-Brown Research Corporation System for linearizing non-linear transducer signals
JP3045245B2 (ja) 1990-05-18 2000-05-29 ソニー株式会社 ガンマ補正回路
JP3540957B2 (ja) 1995-09-25 2004-07-07 松下電器産業株式会社 階調変換方法、階調変換装置、および画像表示装置
US6166781A (en) * 1996-10-04 2000-12-26 Samsung Electronics Co., Ltd. Non-linear characteristic correction apparatus and method therefor
US5951625A (en) * 1997-06-30 1999-09-14 Truevision, Inc. Interpolated lookup table circuit
JP2000350054A (ja) 1999-06-02 2000-12-15 Matsushita Electric Ind Co Ltd ガンマ処理装置
KR100378162B1 (ko) * 2000-01-11 2003-03-29 삼성전자주식회사 룩업 테이블을 이용한 연산결과 검출장치 및 방법
US6833876B1 (en) * 2000-02-16 2004-12-21 Zilog, Inc. Using a reduced memory look up table for gamma correction through interpolation

Also Published As

Publication number Publication date
JP2003209715A (ja) 2003-07-25
US20030131038A1 (en) 2003-07-10
US7111028B2 (en) 2006-09-19

Similar Documents

Publication Publication Date Title
JPH05503410A (ja) 連続階調画像―二進値画像変換のための高速ディジタル誤差拡散方法
JP3757884B2 (ja) データ変換方法、データ変換回路及びデータ変換プログラム
JP2000347835A (ja) 自乗計算方法及び自乗計算装置
JPH0918723A (ja) 階調数変換装置及びその方法
JP3417286B2 (ja) 乗算器
JP2004088157A (ja) データ変換方法、データ変換回路及びデータ変換プログラム
JP3071607B2 (ja) 乗算回路
JP2803506B2 (ja) 除算器
JP4402523B2 (ja) データ変換方法、データ変換装置、プログラム及び記憶媒体
JP3190826B2 (ja) 積和演算装置
KR860001321B1 (ko) 제산회로
JP4658821B2 (ja) ベジェ曲線生成回路
JP3390599B2 (ja) 除算装置
KR100422345B1 (ko) 난수 발생기
JPH08223450A (ja) ガンマ補正回路
JPH05216626A (ja) 乗算器
JP3722821B2 (ja) 演算方法
JP2699624B2 (ja) 乗算器
JPS5936854A (ja) 自然数の剰余数変換装置
JP2638842B2 (ja) デコーダ回路
JP3261600B2 (ja) 剰余乗算器
JP2580895Y2 (ja) データの非線形変換を伴うデジタル/アナログ変換装置
JPH01176120A (ja) デコーダ回路
JPH0877343A (ja) ラスター/ブロック変換方法並びにこの方法を実施する装置
JPH1131976A (ja) パラレル−シリアル変換回路及びデジタル信号処理回路

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051104

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051219

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

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees