(57)【要約】【課題】変換データを格納する回路の記憶容量を小さくすると共に、出力データの誤差を小さくすることができるデータ変換回路等を提供する。【解決手段】入力データ中の最上位に位置する「１」のビット番号をＬデータとして出力するプライオリティエンコーダ１１と、これより上位のビット数をＫデータとして出力する減算器１２と、変換テーブルを格納する変換テーブル格納部１３と、入力データをシフトさせてＭデータを出力するシフタ１４と、ＭデータからＮデータとＰデータを抽出するビット抽出部１５と、Ｎデータに基づきテーブルアドレスを作成するテーブルアドレス作成部１６と、補間用変換テーブルを格納する補間用変換テーブル格納部１７と、変換テーブル格納部１３の出力と補間用変換テーブル格納部１７の出力とに基づいて出力データを生成する手段１９、２０とを具備する。【選択図】　図１
2004088157.tif 000002
【特許請求の範囲】
【請求項１】
入力データを変換して出力データを生成するデータ変換方法であって、
ｎビット幅の前記入力データ中の「１」であるビットの内で最上位に位置するビットより上位に位置する「０」のビット数Ｋを示す第１のデータを求めるステップ（ａ）と、
予め複数の第１のデータに第１の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第１のテーブルから、ステップ（ａ）において求められた第１のデータに対応する第１の変換データを読み出すステップ（ｂ）と、
前記入力データ中で、最上位からＫ＋１番目に位置するビットに続くｐビット幅の第２のデータを求めるステップ（ｃ）と、
予め複数の第２のデータに第２の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第２のテーブルから、ステップ（ｃ）において求められた第２のデータに対応する第２の変換データを読み出すステップ（ｄ）と、
前記第１の変換データと前記第２の変換データとに基づいて出力データを生成するステップ（ｅ）と、
を具備するデータ変換方法。
【請求項２】
ステップ（ｅ）が、前記第１の変換データに前記第２の変換データを乗ずることにより出力データを生成することを特徴とする請求項１記載のデータ変換方法。
【請求項３】
ステップ（ｄ）が、前記第２のデータをインクリメント又はデクリメントしたデータに対応する第３の変換データを第２のテーブルから読み出し、ステップ（ｅ）が、前記第２及び第３の変換データに基づいて補間処理をしたデータに前記第１の変換データを乗ずることにより出力データを生成することを特徴とする請求項１記載のデータ変換方法。
【請求項４】
ステップ（ｃ）が、前記入力データの中から、ビット番号（ｎ−Ｋ−２）〜（ｎ−Ｋ−ｐ−１）のｐビット幅（ここで、１≦ｐ≦ｎ−Ｋ−１）のデータを抽出することにより前記第２のデータを求めることを特徴とする請求項１〜３のいずれか１項記載のデータ変換方法。
【請求項５】
入力データを変換して出力データを生成するデータ変換方法であって、
ｎビット幅の前記入力データ中の「１」であるビットの内で最上位に位置するビットより上位に位置する「０」のビット数Ｋを示す第１のデータを求めるステップ（ａ）と、
予め複数の第１のデータに第１の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第１のテーブルから、ステップ（ａ）において求められた第１のデータに対応する第１の変換データを読み出すステップ（ｂ）と、
前記入力データ中で、最上位からＫ＋１番目に位置するビットに続くｐビット幅の第２のデータを求めるステップ（ｃ）と、
前記第２のデータに所定の操作を施すことにより第３のデータを求めるステップ（ｄ）と、
予め複数の第２のデータに第２の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第２のテーブルから、ステップ（ｄ）において求められた第３のデータに対応する第２の変換データを読み出すステップ（ｅ）と、
前記第１の変換データと前記第２の変換データとに基づいて出力データを生成するステップ（ｆ）と、
を具備するデータ変換方法。
【請求項６】
ステップ（ｆ）が、前記第１の変換データに前記第２の変換データを乗ずることにより出力データを生成することを特徴とする請求項５記載のデータ変換方法。
【請求項７】
ステップ（ｅ）が、前記第３のデータをインクリメント又はデクリメントしたデータに対応する第３の変換データを第２のテーブルから読み出し、ステップ（ｆ）が、前記第２及び第３の変換データに基づいて補間処理をしたデータに前記第１の変換データを乗ずることにより出力データを生成することを特徴とする請求項５記載のデータ変換方法。
【請求項８】
ステップ（ｄ）が、第ｉ群に属するデータの数をＶｉとしたときにＶ０≦Ｖ１≦…≦ＶＮとなるように、前記第２のデータ０〜（２ｐ−１）をＮ群に分割することにより前記第３のデータを求めることを特徴とする請求項５〜７のいずれか１項記載のデータ変換方法。
【請求項９】
入力データを変換して出力データを生成するデータ変換方法であって、
ｎビット幅の前記入力データ中の「１」であるビットの内で最上位に位置するビットより上位に位置する「０」のビット数Ｋを示す第１のデータを求めるステップ（ａ）と、
予め複数の第１のデータに第１の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第１のテーブルから、ステップ（ａ）において求められた第１のデータに対応する第１の変換データを読み出すステップ（ｂ）と、
前記入力データ中で、最上位からＫ＋１番目に位置するビットに続くｐビット幅の第２のデータを求めるステップ（ｃ）と、
ｐビット幅の前記第２のデータ中の「１」であるビットの内で最上位に位置するビットのビット番号を示す第３のデータを求めるステップ（ｄ）と、
予め複数の第２のデータに第２の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第２のテーブルから、ステップ（ｄ）において求められた第３のデータに対応する第２の変換データを読み出すステップ（ｅ）と、
前記第１の変換データと前記第２の変換データとに基づいて出力データを生成するステップ（ｆ）と、
を具備するデータ変換方法。
【請求項１０】
ステップ（ｆ）が、前記第１の変換データに前記第２の変換データを乗ずることにより出力データを生成することを特徴とする請求項９記載のデータ変換方法。
【請求項１１】
ステップ（ｅ）が、前記第３のデータをインクリメント又はデクリメントしたデータに対応する第３の変換データを第２のテーブルから読み出し、ステップ（ｆ）が、前記第２及び第３の変換データに基づいて補間処理をしたデータに前記第１の変換データを乗ずることにより出力データを生成することを特徴とする請求項９記載のデータ変換方法。
【請求項１２】
前記補間処理が線形補間処理であることを特徴とする請求項３又は７又は１１項記載のデータ変換方法。
【請求項１３】
前記第１の変換が、２−Ｋをガンマ変換し、前記第２の変換が、最上位ビットを「１」とし、続くｐビット分を第２のデータとしたｎビット幅のデータをガンマ変換することを特徴とする請求項１〜１２のいずれか１項記載のデータ変換方法。
【請求項１４】
入力データを変換して出力データを生成するデータ変換回路であって、
ｎビット幅の前記入力データ中の「１」であるビットの内で最上位に位置するビットより上位に位置する「０」のビット数Ｋを示す第１のデータを求める第１の手段と、
予め複数の第１のデータに第１の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第１のテーブルから、前記第１の手段が求めた第１のデータに対応する第１の変換データを読み出す第２の手段と、
前記入力データ中で、最上位からＫ＋１番目に位置するビットに続くｐビット幅の第２のデータを求める第３の手段と、
予め複数の第２のデータに第２の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第２のテーブルから、前記第３の手段が求めた第２のデータに対応する第２の変換データを読み出す第４の手段と、
前記第１の変換データと前記第２の変換データとに基づいて出力データを生成する第５の手段と、
を具備するデータ変換回路。
【請求項１５】
前記第５の手段が、前記第１の変換データに前記第２の変換データを乗ずることにより出力データを生成することを特徴とする請求項１４記載のデータ変換回路。
【請求項１６】
前記第４の手段が、前記第２のデータをインクリメント又はデクリメントしたデータに対応する第３の変換データを第２のテーブルから読み出し、前記第５の手段が、前記第２及び第３の変換データに基づいて補間処理をしたデータに前記第１の変換データを乗ずることにより出力データを生成することを特徴とする請求項１４記載のデータ変換回路。
【請求項１７】
前記第３の手段が、前記入力データの中から、ビット番号（ｎ−Ｋ−２）〜（ｎ−Ｋ−ｐ−１）のｐビット幅（ここで、１≦ｐ≦ｎ−Ｋ−１）のデータを抽出することにより前記第２のデータを求めることを特徴とする請求項１４〜１６のいずれか１項記載のデータ変換回路。
【請求項１８】
入力データを変換して出力データを生成するデータ変換回路であって、
ｎビット幅の前記入力データ中の「１」であるビットの内で最上位に位置するビットより上位に位置する「０」のビット数Ｋを示す第１のデータを求める第１の手段と、
予め複数の第１のデータに第１の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第１のテーブルから、前記第１の手段が求めた第１のデータに対応する第１の変換データを読み出す第２の手段と、
前記入力データ中で、最上位からＫ＋１番目に位置するビットに続くｐビット幅の第２のデータを求める第３の手段と、
前記第２のデータに所定の操作を施すことにより第３のデータを求める第４の手段と、
予め複数の第２のデータに第２の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第２のテーブルから、前記第４の手段が求めた第３のデータに対応する第２の変換データを読み出す第５の手段と、
前記第１の変換データと前記第２の変換データとに基づいて出力データを生成する第６の手段と、
を具備するデータ変換回路。
【請求項１９】
前記第６の手段が、前記第１の変換データに前記第２の変換データを乗ずることにより出力データを生成することを特徴とする請求項１８記載のデータ変換回路。
【請求項２０】
前記第５の手段が、前記第３のデータをインクリメント又はデクリメントしたデータに対応する第３の変換データを第２のテーブルから読み出し、前記第６の手段が、前記第２及び第３の変換データに基づいて補間処理をしたデータに前記第１の変換データを乗ずることにより出力データを生成することを特徴とする請求項１８記載のデータ変換回路。
【請求項２１】
前記第４の手段が、第ｉ群に属するデータの数をＶｉとしたときにＶ０≦Ｖ１≦…≦ＶＮとなるように、前記第２のデータ０〜（２ｐ−１）をＮ群に分割することにより前記第３のデータを求めることを特徴とする請求項１８〜２０のいずれか１項記載のデータ変換回路。
【請求項２２】
入力データを変換して出力データを生成するデータ変換回路であって、
ｎビット幅の前記入力データ中の「１」であるビットの内で最上位に位置するビットより上位に位置する「０」のビット数Ｋを示す第１のデータを求める第１の手段と、
予め複数の第１のデータに第１の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第１のテーブルから、前記第１の手段が求めた第１のデータに対応する第１の変換データを読み出す第２の手段と、
前記入力データ中で、最上位からＫ＋１番目に位置するビットに続くｐビット幅の第２のデータを求める第３の手段と、
ｐビット幅の前記第２のデータ中の「１」であるビットの内で最上位に位置するビットのビット番号を示す第３のデータを求める第４の手段と、
予め複数の第２のデータに第２の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第２のテーブルから、前記第４の手段が求めた第３のデータに対応する第２の変換データを読み出す第５の手段と、
前記第１の変換データと前記第２の変換データとに基づいて出力データを生成する第６の手段と、
を具備するデータ変換回路。
【請求項２３】
前記第６の手段が、前記第１の変換データに前記第２の変換データを乗ずることにより出力データを生成することを特徴とする請求項２２記載のデータ変換回路。
【請求項２４】
前記第５の手段が、前記第３のデータをインクリメント又はデクリメントしたデータに対応する第３の変換データを第２のテーブルから読み出し、前記第６の手段が、前記第２及び第３の変換データに基づいて補間処理をしたデータに前記第１の変換データを乗ずることにより出力データを生成することを特徴とする請求項２２記載のデータ変換回路。
【請求項２５】
前記補間処理が線形補間処理であることを特徴とする請求項１６又は２０又は２４項記載のデータ変換回路。
【請求項２６】
前記第１の変換が、２−Ｋをガンマ変換し、前記第２の変換が、最上位ビットを「１」とし、続くｐビット分を第２のデータとしたｎビット幅のデータをガンマ変換することを特徴とする請求項１４〜２５のいずれか１項記載のデータ変換回路。
【請求項２７】
入力データを変換して出力データを生成するデータ変換プログラムであって、
ｎビット幅の前記入力データ中の「１」であるビットの内で最上位に位置するビットより上位に位置する「０」のビット数Ｋを示す第１のデータを求める手順（ａ）と、
予め複数の第１のデータに第１の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第１のテーブルから、手順（ａ）において求められた第１のデータに対応する第１の変換データを読み出す手順（ｂ）と、
前記入力データ中で、最上位からＫ＋１番目に位置するビットに続くｐビット幅の第２のデータを求める手順（ｃ）と、
予め複数の第２のデータに第２の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第２のテーブルから、手順（ｃ）において求められた第２のデータに対応する第２の変換データを読み出す手順（ｄ）と、
前記第１の変換データと前記第２の変換データとに基づいて出力データを生成する手順（ｅ）と、
を具備するデータ変換プログラム。
【請求項２８】
手順（ｅ）が、前記第１の変換データに前記第２の変換データを乗ずることにより出力データを生成することを特徴とする請求項２７記載のデータ変換プログラム。
【請求項２９】
手順（ｄ）が、前記第２のデータをインクリメント又はデクリメントしたデータに対応する第３の変換データを第２のテーブルから読み出し、手順（ｅ）が、前記第２及び第３の変換データに基づいて補間処理をしたデータに前記第１の変換データを乗ずることにより出力データを生成することを特徴とする請求項２７記載のデータ変換プログラム。
【請求項３０】
手順（ｃ）が、前記入力データの中から、ビット番号（ｎ−Ｋ−２）〜（ｎ−Ｋ−ｐ−１）のｐビット幅（ここで、１≦ｐ≦ｎ−Ｋ−１）のデータを抽出することにより前記第２のデータを求めることを特徴とする請求項２７〜２９のいずれか１項記載のデータ変換プログラム。
【請求項３１】
入力データを変換して出力データを生成するデータ変換プログラムであって、
ｎビット幅の前記入力データ中の「１」であるビットの内で最上位に位置するビットより上位に位置する「０」のビット数Ｋを示す第１のデータを求める手順（ａ）と、
予め複数の第１のデータに第１の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第１のテーブルから、ステップ（ａ）において求められた第１のデータに対応する第１の変換データを読み出す手順（ｂ）と、
前記入力データ中で、最上位からＫ＋１番目に位置するビットに続くｐビット幅の第２のデータを求める手順（ｃ）と、
前記第２のデータに所定の操作を施すことにより第３のデータを求める手順（ｄ）と、
予め複数の第２のデータに第２の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第２のテーブルから、手順（ｄ）において求められた第３のデータに対応する第２の変換データを読み出す手順（ｅ）と、
前記第１の変換データと前記第２の変換データとに基づいて出力データを生成する手順（ｆ）と、
を具備するデータ変換プログラム。
【請求項３２】
手順（ｆ）が、前記第１の変換データに前記第２の変換データを乗ずることにより出力データを生成することを特徴とする請求項３１記載のデータ変換プログラム。
【請求項３３】
手順（ｅ）が、前記第３のデータをインクリメント又はデクリメントしたデータに対応する第３の変換データを第２のテーブルから読み出し、手順（ｆ）が、前記第２及び第３の変換データに基づいて補間処理をしたデータに前記第１の変換データを乗ずることにより出力データを生成することを特徴とする請求項３１記載のデータ変換プログラム。
【請求項３４】
手順（ｄ）が、第ｉ群に属するデータの数をＶｉとしたときにＶ０≦Ｖ１≦…≦ＶＮとなるように、前記第２のデータ０〜（２ｐ−１）をＮ群に分割することにより前記第３のデータを求めることを特徴とする請求項３１〜３３のいずれか１項記載のデータ変換プログラム。
【請求項３５】
入力データを変換して出力データを生成するデータ変換プログラムであって、
ｎビット幅の前記入力データ中の「１」であるビットの内で最上位に位置するビットより上位に位置する「０」のビット数Ｋを示す第１のデータを求める手順（ａ）と、
予め複数の第１のデータに第１の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第１のテーブルから、手順（ａ）において求められた第１のデータに対応する第１の変換データを読み出す手順（ｂ）と、
前記入力データ中で、最上位からＫ＋１番目に位置するビットに続くｐビット幅の第２のデータを求める手順（ｃ）と、
ｐビット幅の前記第２のデータ中の「１」であるビットの内で最上位に位置するビットのビット番号を示す第３のデータを求める手順（ｄ）と、
予め複数の第２のデータに第２の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第２のテーブルから、手順（ｄ）において求められた第３のデータに対応する第２の変換データを読み出す手順（ｅ）と、
前記第１の変換データと前記第２の変換データとに基づいて出力データを生成する手順（ｆ）と、
を具備するデータ変換プログラム。
【請求項３６】
手順（ｆ）が、前記第１の変換データに前記第２の変換データを乗ずることにより出力データを生成することを特徴とする請求項３５記載のデータ変換プログラム。
【請求項３７】
手順（ｅ）が、前記第３のデータをインクリメント又はデクリメントしたデータに対応する第３の変換データを第２のテーブルから読み出し、手順（ｆ）が、前記第２及び第３の変換データに基づいて補間処理をしたデータに前記第１の変換データを乗ずることにより出力データを生成することを特徴とする請求項３５記載のデータ変換プログラム。
【請求項３８】
前記補間処理が線形補間処理であることを特徴とする請求項２９又は３３又は３７項記載のデータ変換プログラム。
【請求項３９】
前記第１の変換が、２−Ｋをガンマ変換し、前記第２の変換が、最上位ビットを「１」とし、続くｐビット分を第２のデータとしたｎビット幅のデータをガンマ変換することを特徴とする請求項２７〜３８のいずれか１項記載のデータ変換プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、入力データを変換して出力データを生成するデータ変換方法、データ変換回路及びデータ変換プログラムに関し、特に、入力データをガンマ変換して出力データを生成するデータ変換方法等に関する。
【０００２】
【従来の技術】
一般に、ＣＲＴ等の受像管において、駆動電圧Ｅとカソード電流Ｉとの間には、次式で表すような関係が存在する。
Ｉ＝ＫＥγ
この関係はガンマ（γ）特性と呼ばれる。ガンマの値は一般に１．６〜３程度であるので、カソード電流Ｉは駆動電圧Ｅに対して非直線性を有する。受像管においてγ＝１とすることは困難なので、送像側にガンマ補正回路を設けて総合的にγ＝１とすることが行われている。本願においては、このようなガンマ補正のために画像信号に対して行う変換のことをガンマ変換という。
【０００３】
画像読み取り装置や画像表示装置等に用いられる画像処理ＬＳＩ等において、画像データのガンマ変換が行われる。ガンマ変換は、入力をｘ、出力をｙとすると、次式によって表される。
【数１】
2004088157.tif 000003
【０００４】
図２５に、γ＝１．８とした場合の式（１）のグラフを示す。ガンマ変換は、このようにべき関数であるため、その演算には多くの時間が必要である。ところが、ガンマ変換は、画像読み取り装置等の高速動作のために、高速に行われることが要求される。そのため、従来より、入力データに対応する変換データを有する変換テーブルをＳＲＡＭ等の高速記憶素子に格納し、入力データに対応する変換データを変換テーブルから読み出すことが行われている。図２６は、このような従来のガンマ変換回路を示す図である。図２６に示すように、従来のガンマ変換回路１００は、入力データに対応する変換データを有する変換テーブルを格納する変換テーブル格納部１０１を具備しており、入力データに対応する変換データを出力する。ここで、変換テーブル格納部１０１は、ＳＲＡＭ等の高速記憶素子によって構成される。
【０００５】
ガンマ変換回路１００においては、例えば、入力データが１２ビットのデータであり、出力データが８ビットのデータである場合には、変換テーブルのサイズは、４０９６ワード（ここでは、１ワード＝８ビット）となり、変換テーブル格納部１０１の記憶容量も４０９６ワード必要となる。また、入力データが１６ビットのデータであり、出力データが１２ビットのデータである場合には、変換テーブルのサイズは、６５５３６ワード（ここでは、１ワード＝１２ビット）となり、変換テーブル格納部１０１の記憶容量も６５５３６ワード必要となる。このように大きなサイズの変換テーブルを格納するための大容量のＳＲＡＭを画像処理ＬＳＩに集積することは、極めて困難である。また、このような大容量のＳＲＡＭを画像処理ＬＳＩに集積できた場合であっても、画像処理ＬＳＩの大幅なコストアップを招くこととなる。
【０００６】
また、変換テーブルを小さくするため、所定間隔（例えば、１６）毎の入力データに対応する変換データを有する変換テーブルをＳＲＡＭ等に格納し、対応する変換データが変換テーブルに格納されている入力データが入力された場合には該変換データを出力し、対応する変換データが変換テーブルに格納されていない入力データが入力された場合には、該入力データの前後の入力データであって対応する変換データが変換テーブルに格納されている入力データに対応する変換データに補間処理を行って得られたデータを出力することが行われている。図２７は、このような従来のガンマ変換回路を示す図である。図２７に示すように、従来のガンマ変換回路１１０は、所定間隔毎の入力データに対応する変換データを有する変換テーブルを格納する変換テーブル格納部１１１及び変換テーブル格納部１１１の出力データに補間処理を行う補間処理部１１２を具備している。ここで、変換テーブル格納部１１１は、ＳＲＡＭ等の高速記憶素子によって構成される。
【０００７】
ガンマ変換回路１１０においては、例えば、入力データが１２ビットのデータであり、出力データが８ビットのデータであり、対応する変換データが格納される入力データの間隔が１６である場合には、変換テーブルのサイズは、２５６ワード（ここでは、１ワード＝８ビット）となり、変換テーブル格納部１１１に必要とされる記憶容量も２５６ワードに低減される。また、入力データが１６ビットのデータであり、出力データが１２ビットのデータで、入力データの間隔が１６である場合には、変換テーブルのサイズは、４０９６ワード（ここでは、１ワード＝１２ビット）となり、変換テーブル格納部１１１に必要とされる記憶容量も４０９６ワードに低減される。
【０００８】
【発明が解決しようとする課題】
しかしながら、ガンマ変換回路１１０の出力データは、補間処理により算出されるため、誤差を有することとなる。図２８は、入力データが１６ビットのデータであり、出力データが１６ビットのデータであり、対応する変換データが格納される入力データの間隔が１６であるとした場合におけるガンマ変換回路１１０の出力データと式（１）により算出される値との誤差を示す図である。図２８に示すように、ガンマ変換回路１１０の出力データは、最大で約１３０の誤差を有する。
【０００９】
そこで、上記の点に鑑み、本発明は、変換データを格納する回路の記憶容量を小さくすると共に、出力データの誤差を小さくすることができるデータ変換方法、データ変換回路及びデータ変換プログラムを提供することを目的とする。
【００１０】
【課題を解決するための手段】
以上の課題を解決するため、本発明の第１の観点に係るデータ変換方法は、入力データを変換して出力データを生成するデータ変換方法であって、ｎビット幅の入力データ中の「１」であるビットの内で最上位に位置するビットより上位に位置する「０」のビット数Ｋを示す第１のデータを求めるステップ（ａ）と、予め複数の第１のデータに第１の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第１のテーブルから、ステップ（ａ）において求められた第１のデータに対応する第１の変換データを読み出すステップ（ｂ）と、入力データ中で、最上位からＫ＋１番目に位置するビットに続くｐビット幅の第２のデータを求めるステップ（ｃ）と、予め複数の第２のデータに第２の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第２のテーブルから、ステップ（ｃ）において求められた第２のデータに対応する第２の変換データを読み出すステップ（ｄ）と、第１の変換データと第２の変換データとに基づいて出力データを生成するステップ（ｅ）とを具備する。
【００１１】
ここで、ステップ（ｅ）が、第１の変換データに第２の変換データを乗ずることにより出力データを生成しても良いし、ステップ（ｄ）が、第２のデータをインクリメント又はデクリメントしたデータに対応する第３の変換データを第２のテーブルから読み出し、ステップ（ｅ）が、第２及び第３の変換データに基づいて補間処理をしたデータに第１の変換データを乗ずることにより出力データを生成しても良い。また、ステップ（ｃ）が、入力データの中から、ビット番号（ｎ−Ｋ−２）〜（ｎ−Ｋ−ｐ−１）のｐビット幅（ここで、１≦ｐ≦ｎ−Ｋ−１）のデータを抽出することにより第２のデータを求めるようにしても良い。
【００１２】
また、本発明の第２の観点に係るデータ変換方法は、入力データを変換して出力データを生成するデータ変換方法であって、ｎビット幅の入力データ中の「１」であるビットの内で最上位に位置するビットより上位に位置する「０」のビット数Ｋを示す第１のデータを求めるステップ（ａ）と、予め複数の第１のデータに第１の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第１のテーブルから、ステップ（ａ）において求められた第１のデータに対応する第１の変換データを読み出すステップ（ｂ）と、入力データ中で、最上位からＫ＋１番目に位置するビットに続くｐビット幅の第２のデータを求めるステップ（ｃ）と、第２のデータに所定の操作を施すことにより第３のデータを求めるステップ（ｄ）と、予め複数の第２のデータに第２の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第２のテーブルから、ステップ（ｄ）において求められた第３のデータに対応する第２の変換データを読み出すステップ（ｅ）と、第１の変換データと第２の変換データとに基づいて出力データを生成するステップ（ｆ）とを具備する。
【００１３】
ここで、ステップ（ｆ）が、第１の変換データに第２の変換データを乗ずることにより出力データを生成しても良いし、ステップ（ｅ）が、第３のデータをインクリメント又はデクリメントしたデータに対応する第３の変換データを第２のテーブルから読み出し、ステップ（ｆ）が、第２及び第３の変換データに基づいて補間処理をしたデータに第１の変換データを乗ずることにより出力データを生成しても良い。また、ステップ（ｄ）が、第ｉ群に属するデータの数をＶｉとしたときにＶ０≦Ｖ１≦…≦ＶＮとなるように、第２のデータ０〜（２ｐ−１）をＮ群に分割することにより第３のデータを求めるようにしても良い。
【００１４】
さらに、本発明の第３の観点に係るデータ変換方法は、入力データを変換して出力データを生成するデータ変換方法であって、ｎビット幅の入力データ中の「１」であるビットの内で最上位に位置するビットより上位に位置する「０」のビット数Ｋを示す第１のデータを求めるステップ（ａ）と、予め複数の第１のデータに第１の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第１のテーブルから、ステップ（ａ）において求められた第１のデータに対応する第１の変換データを読み出すステップ（ｂ）と、入力データ中で、最上位からＫ＋１番目に位置するビットに続くｐビット幅の第２のデータを求めるステップ（ｃ）と、ｐビット幅の第２のデータ中の「１」であるビットの内で最上位に位置するビットのビット番号を示す第３のデータを求めるステップ（ｄ）と、予め複数の第２のデータに第２の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第２のテーブルから、ステップ（ｄ）において求められた第３のデータに対応する第２の変換データを読み出すステップ（ｅ）と、第１の変換データと第２の変換データとに基づいて出力データを生成するステップ（ｆ）とを具備する。
【００１５】
ここで、ステップ（ｆ）が、第１の変換データに第２の変換データを乗ずることにより出力データを生成しても良いし、ステップ（ｅ）が、第３のデータをインクリメント又はデクリメントしたデータに対応する第３の変換データを第２のテーブルから読み出し、ステップ（ｆ）が、第２及び第３の変換データに基づいて補間処理をしたデータに第１の変換データを乗ずることにより出力データを生成しても良い。
【００１６】
以上において、補間処理が線形補間処理であることとしても良いし、第１の変換が、２−Ｋをガンマ変換し、第２の変換が、最上位ビットを「１」とし、続くｐビット分を第２のデータとしたｎビット幅のデータをガンマ変換するすることとしても良い。
【００１７】
本発明の第１の観点に係るデータ変換回路は、入力データを変換して出力データを生成するデータ変換回路であって、ｎビット幅の入力データ中の「１」であるビットの内で最上位に位置するビットより上位に位置する「０」のビット数Ｋを示す第１のデータを求める第１の手段と、予め複数の第１のデータに第１の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第１のテーブルから、第１の手段が求めた第１のデータに対応する第１の変換データを読み出す第２の手段と、入力データ中で、最上位からＫ＋１番目に位置するビットに続くｐビット幅の第２のデータを求める第３の手段と、予め複数の第２のデータに第２の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第２のテーブルから、第３の手段が求めた第２のデータに対応する第２の変換データを読み出す第４の手段と、第１の変換データと第２の変換データとに基づいて出力データを生成する第５の手段とを具備する。
【００１８】
ここで、第５の手段が、第１の変換データに第２の変換データを乗ずることにより出力データを生成しても良いし、第４の手段が、第２のデータをインクリメント又はデクリメントしたデータに対応する第３の変換データを第２のテーブルから読み出し、第５の手段が、第２及び第３の変換データに基づいて補間処理をしたデータに第１の変換データを乗ずることにより出力データを生成しても良い。また、第３の手段が、入力データの中から、ビット番号（ｎ−Ｋ−２）〜（ｎ−Ｋ−ｐ−１）のｐビット幅（ここで、１≦ｐ≦ｎ−Ｋ−１）のデータを抽出することにより第２のデータを求めるようにしても良い。
【００１９】
また、本発明の第２の観点に係るデータ変換回路は、入力データを変換して出力データを生成するデータ変換回路であって、ｎビット幅の入力データ中の「１」であるビットの内で最上位に位置するビットより上位に位置する「０」のビット数Ｋを示す第１のデータを求める第１の手段と、予め複数の第１のデータに第１の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第１のテーブルから、第１の手段が求めた第１のデータに対応する第１の変換データを読み出す第２の手段と、入力データ中で、最上位からＫ＋１番目に位置するビットに続くｐビット幅の第２のデータを求める第３の手段と、第２のデータに所定の操作を施すことにより第３のデータを求める第４の手段と、予め複数の第２のデータに第２の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第２のテーブルから、第４の手段が求めた第３のデータに対応する第２の変換データを読み出す第５の手段と、第１の変換データと第２の変換データとに基づいて出力データを生成する第６の手段とを具備する。
【００２０】
ここで、第６の手段が、第１の変換データに第２の変換データを乗ずることにより出力データを生成しても良いし、第５の手段が、第３のデータをインクリメント又はデクリメントしたデータに対応する第３の変換データを第２のテーブルから読み出し、第６の手段が、第２及び第３の変換データに基づいて補間処理をしたデータに第１の変換データを乗ずることにより出力データを生成しても良い。また、第４の手段が、第ｉ群に属するデータの数をＶｉとしたときにＶ０≦Ｖ１≦…≦ＶＮとなるように、第２のデータ０〜（２ｐ−１）をＮ群に分割することにより第３のデータを求めるようにしても良い。
【００２１】
さらに、本発明の第３の観点に係るデータ変換回路は、入力データを変換して出力データを生成するデータ変換回路であって、ｎビット幅の入力データ中の「１」であるビットの内で最上位に位置するビットより上位に位置する「０」のビット数Ｋを示す第１のデータを求める第１の手段と、予め複数の第１のデータに第１の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第１のテーブルから、第１の手段が求めた第１のデータに対応する第１の変換データを読み出す第２の手段と、入力データ中で、最上位からＫ＋１番目に位置するビットに続くｐビット幅の第２のデータを求める第３の手段と、ｐビット幅の第２のデータ中の「１」であるビットの内で最上位に位置するビットのビット番号を示す第３のデータを求める第４の手段と、予め複数の第２のデータに第２の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第２のテーブルから、第４の手段が求めた第３のデータに対応する第２の変換データを読み出す第５の手段と、第１の変換データと第２の変換データとに基づいて出力データを生成する第６の手段とを具備する。
【００２２】
ここで、第６の手段が、第１の変換データに第２の変換データを乗ずることにより出力データを生成しても良いし、第５の手段が、第３のデータをインクリメント又はデクリメントしたデータに対応する第３の変換データを第２のテーブルから読み出し、第６の手段が、第２及び第３の変換データに基づいて補間処理をしたデータに第１の変換データを乗ずることにより出力データを生成しても良い。
【００２３】
以上において、補間処理が線形補間処理であることとしても良いし、第１の変換が、２−Ｋをガンマ変換し、第２の変換が、最上位ビットを「１」とし、続くｐビット分を第２のデータとしたｎビット幅のデータをガンマ変換することとしても良い。
【００２４】
本発明の第１の観点に係るデータ変換プログラムは、入力データを変換して出力データを生成するデータ変換プログラムであって、ｎビット幅の入力データ中の「１」であるビットの内で最上位に位置するビットより上位に位置する「０」のビット数Ｋを示す第１のデータを求める手順（ａ）と、予め複数の第１のデータに第１の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第１のテーブルから、手順（ａ）において求められた第１のデータに対応する第１の変換データを読み出す手順（ｂ）と、入力データ中で、最上位からＫ＋１番目に位置するビットに続くｐビット幅の第２のデータを求める手順（ｃ）と、予め複数の第２のデータに第２の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第２のテーブルから、手順（ｃ）において求められた第２のデータに対応する第２の変換データを読み出す手順（ｄ）と、第１の変換データと第２の変換データとに基づいて出力データを生成する手順（ｅ）とを具備する。
【００２５】
ここで、手順（ｅ）が、第１の変換データに第２の変換データを乗ずることにより出力データを生成しても良いし、手順（ｄ）が、第２のデータをインクリメント又はデクリメントしたデータに対応する第３の変換データを第２のテーブルから読み出し、手順（ｅ）が、第２及び第３の変換データに基づいて補間処理をしたデータに第１の変換データを乗ずることにより出力データを生成しても良い。また、手順（ｃ）が、入力データの中から、ビット番号（ｎ−Ｋ−２）〜（ｎ−Ｋ−ｐ−１）のｐビット幅（ここで、１≦ｐ≦ｎ−Ｋ−１）のデータを抽出することにより第２のデータを求めることとしても良い。
【００２６】
また、本発明の第２の観点に係るデータ変換プログラムは、入力データを変換して出力データを生成するデータ変換プログラムであって、ｎビット幅の入力データ中の「１」であるビットの内で最上位に位置するビットより上位に位置する「０」のビット数Ｋを示す第１のデータを求める手順（ａ）と、予め複数の第１のデータに第１の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第１のテーブルから、ステップ（ａ）において求められた第１のデータに対応する第１の変換データを読み出す手順（ｂ）と、入力データ中で、最上位からＫ＋１番目に位置するビットに続くｐビット幅の第２のデータを求める手順（ｃ）と、第２のデータに所定の操作を施すことにより第３のデータを求める手順（ｄ）と、予め複数の第２のデータに第２の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第２のテーブルから、手順（ｄ）において求められた第３のデータに対応する第２の変換データを読み出す手順（ｅ）と、第１の変換データと第２の変換データとに基づいて出力データを生成する手順（ｆ）とを具備する。
【００２７】
ここで、手順（ｆ）が、第１の変換データに第２の変換データを乗ずることにより出力データを生成しても良いし、手順（ｅ）が、第３のデータをインクリメント又はデクリメントしたデータに対応する第３の変換データを第２のテーブルから読み出し、手順（ｆ）が、第２及び第３の変換データに基づいて補間処理をしたデータに第１の変換データを乗ずることにより出力データを生成しても良い。また、手順（ｄ）が、第ｉ群に属するデータの数をＶｉとしたときにＶ０≦Ｖ１≦…≦ＶＮとなるように、第２のデータ０〜（２ｐ−１）をＮ群に分割することにより第３のデータを求めるようにしても良い。
【００２８】
さらに、本発明の第３の観点に係るデータ変換プログラムは、入力データを変換して出力データを生成するデータ変換プログラムであって、ｎビット幅の入力データ中の「１」であるビットの内で最上位に位置するビットより上位に位置する「０」のビット数Ｋを示す第１のデータを求める手順（ａ）と、予め複数の第１のデータに第１の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第１のテーブルから、手順（ａ）において求められた第１のデータに対応する第１の変換データを読み出す手順（ｂ）と、入力データ中で、最上位からＫ＋１番目に位置するビットに続くｐビット幅の第２のデータを求める手順（ｃ）と、ｐビット幅の第２のデータ中の「１」であるビットの内で最上位に位置するビットのビット番号を示す第３のデータを求める手順（ｄ）と、予め複数の第２のデータに第２の変換を施すことにより得られた複数の変換データを複数のアドレスに対応して格納している第２のテーブルから、手順（ｄ）において求められた第３のデータに対応する第２の変換データを読み出す手順（ｅ）と、第１の変換データと第２の変換データとに基づいて出力データを生成する手順（ｆ）とを具備する。
【００２９】
ここで、手順（ｆ）が、第１の変換データに第２の変換データを乗ずることにより出力データを生成しても良いし、手順（ｅ）が、第３のデータをインクリメント又はデクリメントしたデータに対応する第３の変換データを第２のテーブルから読み出し、手順（ｆ）が、第２及び第３の変換データに基づいて補間処理をしたデータに第１の変換データを乗ずることにより出力データを生成しても良い。
【００３０】
以上において、補間処理が線形補間処理であることとしても良いし、第１の変換が、２−Ｋをガンマ変換し、第２の変換が、最上位ビットを「１」とし、続くｐビット分を第２のデータとしたｎビット幅のデータをガンマ変換することとしても良い。
【００３１】
本発明によれば、変換データを格納する回路の記憶容量を小さくすると共に、出力データの誤差を小さくすることができる。
【００３２】
【発明の実施の形態】
以下、図面に基づいて本発明の実施の形態について説明する。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
図１は、本発明の第１の実施形態に係るデータ変換回路の構成を示す図である。本実施形態は、本発明をガンマ変換回路に適用したものである。本実施形態においては、入力データは１６ビット幅であり、出力データは１２ビット幅であるものとする。
図１において、ガンマ変換回路１０は、プライオリティエンコーダ１１と、減算器１２と、変換テーブル格納部１３と、シフタ１４と、ビット抽出部１５と、テーブルアドレス作成部１６と、補間用変換テーブル格納部１７と、マルチプレクサ１８と、乗算器１９と、線形補間部２０とを具備している。また、線形補間部２０は、レジスタ２１と、減算器２２と、乗算器２３と、シフタ２４と、加算器２５とを含んでいる。
【００３３】
プライオリティエンコーダ１１は、１６ビット幅の入力データを入力し、入力データ中の最上位に位置する「１」のビットを検出し、検出したビットのビット番号を４ビット幅のＬデータとして出力する。なお、一般に、ビット番号は、最下位ビットを０とし、上位ビットに向かってカウントする。本実施形態においては、一般にならい、最下位ビットのビット番号を０とし、最上位ビットのビット番号を１５とする。例えば、プライオリティエンコーダ１１は、入力データが「１６’ｈ０００１」（ここで、「１６’」は１６ビット幅のデータであることを示し、「ｈ」は１６進表示であることを示し、「０００１」は入力データの値を示す）の場合には、「４’ｈ０」（ここで、「４’」は４ビット幅のデータであることを示し、「ｈ」は１６進表示であることを示し、「０」はＬデータの値を示す）のＬデータを出力し、入力データが「１６’ｈ０００２」の場合には、「４’ｈ１」のＬデータを出力し、入力データが「１６’ｈ０００３」の場合には、「４’ｈ１」のＬデータを出力する。また、プライオリティエンコーダ１１は、入力データ中に「１」のビットがない場合、すなわち入力データが「１６’ｈ００００」である場合には、「４’ｈ０」のＬデータを出力すると共に、ハイレベルのｚｅｒｏ信号を出力する。
【００３４】
減算器１２は、「４’ｈｆ」からＬデータを減じて４ビット幅のＫデータとして出力する。例えば、減算器１２は、Ｌデータが「４’ｈ３」である場合には、「４’ｈｃ」のＫデータを出力する。あるいは、１６ビット幅の入力データをデコードすることで、直接４ビット幅のＫデータを作成しても良い。
【００３５】
変換テーブル格納部１３は、Ｋデータをテーブルアドレスとし、２−Ｋをガンマ変換した１２ビット幅の変換データをテーブルアドレスに対応させた変換テーブルを格納しており、テーブルアドレスに応じて変換データを出力する。
【００３６】
シフタ１４は、入力データを減算器の出力するＫデータの値分だけ左シフトしてＭデータを出力する。例えば、入力データが「１６’ｈ０００８」である場合には、入力データ「１６’ｈ０００８」をＫデータ「４’ｈｃ」だけ左シフトした「１６’ｈ８０００」のＭデータを出力し、入力データが「１６’ｈ０００ａ」である場合には、入力データ「１６’ｈ０００ａ」をＫデータ「４’ｈｃ」だけ左シフトした「１６’ｈａ０００」のＭデータを出力する。
【００３７】
ビット抽出部１５は、Ｍデータを入力し、ビット番号１４，１３の２ビットをＮデータとして出力する。例えば、ビット抽出部１５は、Ｍデータが「１６’ｈ８０００」である場合には、「２’ｂ００」（ここで、「２’」は２ビット幅のデータであることを示し、「ｂ」は２進表示であることを示し、「００」はデータの値を示す）のＮデータを出力し、Ｍデータが「１６’ｈａ０００」である場合には、「２’ｂ０１」のＮデータを出力する。あるいは、１６ビット幅の入力データをデコードすることで、直接２ビット幅のＮデータを作成しても良い。
【００３８】
また、ビット抽出部１５は、Ｍデータ中のビット番号１２〜０の１３ビットを１６ビット幅にゼロ拡張したＰデータを乗算器２３に出力する。例えば、ビット抽出部１５は、Ｍデータが「１６’ｈ８００１」である場合に、Ｍデータの下位１３ビットの上位に３ビットの０を付加した「１６’ｈ０００１」をＰデータとして乗算器２３に出力する。また、例えば、ビット抽出部１５は、Ｍデータが「１６’ｈ８００３」である場合に、Ｍデータの下位１３ビットである「１３’ｂ０００００００００００１１」の上位に３ビットの０を付加した「１６’ｈ０００３」をＰデータとして乗算器２３に出力する。
【００３９】
テーブルアドレス作成部１６は、入力した２ビット幅のＮデータを第１のテーブルアドレスとして出力し、所定時間経過後に、Ｎデータをインクリメント（又はデクリメント）した第２のテーブルアドレスを出力する。例えば、テーブルアドレス作成部１６は、Ｎデータが「２’ｂ００」である場合には、「２’ｂ００」を第１のテーブルアドレスとして出力し、所定時間経過後に、「２’ｂ０１」を第２のテーブルアドレスとして出力する。
【００４０】
補間用変換テーブル格納部１７は、Ｎデータの上位に「１」、下位に「１３’ｂ０００００００００００００」を付加した１６ビット幅のデータをガンマ変換した１２ビット幅の補間用変換データをテーブルアドレスに対応させた補間用変換テーブルを格納しており、第１及び第２のテーブルアドレスに応じて第１及び第２の補間用変換データを出力する。
【００４１】
図２は、入力データ、Ｌデータ、Ｍデータ、Ｎデータ（テーブルアドレス）、及び、補間用変換データの対応を示す図である。図２において、ｙ００は、入力データ「１６’ｈ０００１」に対応するＮデータ「２’ｂ００」の上位に「１」、下位に「１３’ｂ０００００００００００００」を付加したデータをガンマ変換した１２ビット幅のデータであり、ｙ１０は、入力データ「１６’ｈ０００３」に対応するＮデータ「２’ｂ１０」の上位に「１」、下位に「１３’ｂ０００００００００００００」を付加したデータをガンマ変換した１２ビット幅のデータであり、ｙ０１は、入力データ「１６’ｈ０００５」に対応するＮデータ「２’ｂ０１」の上位に「１」、下位に「１３’ｂ０００００００００００００」を付加したデータをガンマ変換した１２ビット幅のデータであり、ｙ１１は、入力データ「１６’ｈ０００７」に対応するＮデータ「２’ｂ１１」の上位に「１」、下位に「１３’ｂ０００００００００００００」を付加したデータをガンマ変換した１２ビット幅のデータである。
【００４２】
図２に示すように、例えば、入力データが「１６’ｈ０００１」の場合に、テーブルアドレスは、「２’ｂ００」となり、入力データが「１６’ｈ０００２」の場合にも、テーブルアドレスは、「２’ｂ００」となる。この場合、補間用変換テーブル格納部１７は、入力データ「１６’ｈ０００１」に対応するＮデータ「２’ｂ００」を１６ビット幅にゼロ拡張し、ビット番号２のビットを「１」とし、１３ビット分だけ左シフトさせたデータをガンマ変換した補間用変換データｙ００をテーブルアドレス「２’ｂ００」に対応させて格納し、入力データ「１６’ｈ０００２」に対応するＮデータ「２’ｂ００」を１６ビット幅にゼロ拡張し、ビット番号２のビットを「１」とし、１３ビット分だけ左シフトさせたデータをガンマ変換した補間用変換データｙ００は格納しない。このように、複数の入力データから同一のテーブルアドレスが生成される場合には、補間用変換テーブル格納部１７は、複数の入力データの内の最小の入力データに対応するＮデータを１６ビット幅にゼロ拡張し、ビット番号２のビットを「１」とし、１３ビット分だけ左シフトさせたデータをガンマ変換した補間用変換データのみを格納する。
【００４３】
図３は、入力データ、テーブルアドレス、及び、補間用変換データの対応を示す図である。図２において、対応する補間用変換データが補間用変換テーブル格納部１７に格納されない入力データの表示は、図３においては省かれている。図２に示すように、入力データ（本実施形態においては、「１６’ｈ００００」〜「１６’ｈｆｆｆｆ」の６５５３６通りに変化する）に対して、補間用変換データは、ｙ００，ｙ１０，ｙ０１，ｙ１１の４データとなる。従って、補間用変換テーブル格納部１７は、４ワード（ここでは、１ワード＝１２ビット）の記憶容量を有すれば良いこととなる。
【００４４】
即ち、図３に示すように、補間用変換テーブル格納部１７は、入力データ「１６’ｈ０００１」、「１６’ｈ０００３」、「１６’ｈ０００５」、「１６’ｈ０００７」にそれぞれ対応する補間用変換データｙ００、ｙ１０、ｙ０１、及び、ｙ１１を格納する。
【００４５】
再び図１を参照すると、マルチプレクサ１８は、ｚｅｒｏ信号がハイレベルの場合には「０」を選択して出力し、ｚｅｒｏ信号がローレベルの場合には変換テーブル格納部１７が出力する変換データを選択して出力する。
【００４６】
線形補間部２０は、変換テーブル格納部１７が出力する第１及び第２の変換データに対して線形補間処理を行う。
レジスタ２１は、マルチプレクサ１８が出力する第１の変換データを所定の時間保持する。
減算器２２は、マルチプレクサ１８が出力する第２の変換データからレジスタ２１が出力する第１の変換データを減じて出力する。
乗算器２３は、減算器２２の出力データにＰデータを乗じて出力する。
【００４７】
シフタ２４は、乗算器２３の出力データを「４’ｈｄ」（１３ビット）だけ右シフトして出力する。
加算器２５は、シフタ２４の出力データをレジスタ２１の出力データに加えて出力する。
【００４８】
変換テーブル格納部１３は、Ｋデータをテーブルアドレスとし、２−Ｋ／γを表わす１２ビット幅の変換データをテーブルアドレスに対応させた変換テーブルを格納しており、テーブルアドレスに応じて変換データを出力する。
【００４９】
図４は、入力データ、Ｌデータ、Ｋデータ（テーブルアドレス）、及び、変換データの対応を示す図である。図４において、ｙＦは、入力データ「１６’ｈ０００１」に対応するＫデータ「４’ｈｆ」を用いて２−Ｋ／γを計算することにより求めた１２ビット幅のデータであり、ｙＥは、入力データ「１６’ｈ０００２」に対応するＫデータ「４’ｈｅ」を用いて２−Ｋ／γを計算することにより求めた１２ビット幅のデータであり、ｙＤは、入力データ「１６’ｈ０００４」に対応するＫデータ「４’ｈｄ」を用いて２−Ｋ／γを計算することにより求めた１２ビット幅のデータであり、ｙＣは、入力データ「１６’ｈ０００８」に対応するＫデータ「４’ｈｃ」を用いて２−Ｋ／γを計算することにより求めた１２ビット幅のデータである。また、ｙＢは、入力データ「１６’ｈ００１０」に対応するＫデータ「４’ｈｂ」を用いて２−Ｋ／γを計算することにより求めた１２ビット幅のデータであり、ｙＡは、入力データ「１６’ｈ００２０」に対応するＫデータ「４’ｈａ」を用いて２−Ｋ／γを計算することにより求めた１２ビット幅のデータであり、ｙ０は、入力データ「１６’ｈ８０００」に対応するＫデータ「４’ｈ０」を用いて２−Ｋ／γを計算することにより求めた１２ビット幅のデータである。
【００５０】
図４に示すように、例えば、入力データが「１６’ｈ０００２」の場合に、テーブルアドレスは、「４’ｈｅ」となり、入力データが「１６’ｈ０００３」の場合にも、テーブルアドレスは、「４’ｈｅ」となる。この場合、変換テーブル格納部１７は、入力データ「１６’ｈ０００２」に対応するＫデータ「４’ｈｅ」を用いて２−Ｋ／γを計算することにより求めた変換データｙＥをテーブルアドレス「４’ｈｅ」に対応させて格納し、入力データ「１６’ｈ０００３」に対応するＫデータ「４’ｈｅ」を用いて求めた変換データｙＥは格納しない。このように、複数の入力データから同一のテーブルアドレスが生成される場合には、変換テーブル格納部１３は、複数の入力データの内の最小の入力データに対応するＫデータを用いて求めた変換データのみを格納する。
【００５１】
図５は、入力データ、テーブルアドレス、及び、変換データの対応を示す図である。図４において対応する変換データが変換テーブル格納部１３に格納されていない入力データの表示は、図５においては省かれている。図４に示すように、入力データ（本実施形態においては、「１６’ｈ００００」〜「１６’ｈｆｆｆｆ」の６５５３６通りに変化する）に対して、変換データは、ｙＦ、ｙＥ、ｙＤ、ｙＣ、ｙＢ、ｙＡ、ｙ９、ｙ８、ｙ７、ｙ６、ｙ５、ｙ４、ｙ３、ｙ２、ｙ１、ｙ０の１６データとなる。従って、変換テーブル格納部１３は、１６ワード（ここでは、１ワード＝１２ビット）の記憶容量を有すれば良いこととなる。
【００５２】
即ち、図５に示すように、変換テーブル格納部１３は、入力データ「１６’ｈ０００１」、「１６’ｈ０００２」、「１６’ｈ０００４」、「１６’ｈ０００８」、「１６’ｈ００１０」、「１６’ｈ００２０」、「１６’ｈ００４０」、「１６’ｈ００８０」、「１６’ｈ０１００」、「１６’ｈ０２００」、「１６’ｈ０４００」、「１６’ｈ０８００」、「１６’ｈ１０００」、「１６’ｈ２０００」、「１６’ｈ４０００」、「１６’ｈ８０００」にそれぞれ対応する変換データｙＦ、ｙＥ、ｙＤ、ｙＣ、ｙＢ、ｙＡ、ｙ９、ｙ８、ｙ７、ｙ６、ｙ５、ｙ４、ｙ３、ｙ２、ｙ１、及び、ｙ０を格納する。
【００５３】
再び図１を参照すると、乗算器１９は、変換テーブル格納部１３の出力データに線形補間部２０の出力データを乗じ、出力データ（ガンマ変換データ）として出力する。
【００５４】
次に、ガンマ変換回路１０が行う処理の原理について、式（２）及び式（３）を参照しながら説明する。
【数２】
2004088157.tif 000004
式（２）において、ｎは入力データｘのビット数を示し、本実施形態においてはｎ＝１６である。
【数３】
2004088157.tif 000005
式（３）は、上位ｋビットが０の場合を示している。式（３）に示すように、入力データｘに対応する変換データｙはｚ１／γの項と２−ｋ／γの項とに分けることができるので、ｚと２−ｋの変換データを用いて変換データｙを算出する。ｚは、入力データｘを左にｋビットシフトして上位にある０を除いたもので、最上位は「１」である。ここで、すべてのｚの値に対応する変換データをテーブルに用意しても良いし、本実施形態において説明するように、代表的なｚの値に対応する変換データのみを用意しておき、残りを補間により求めても良い。
【００５５】
次に、線形補間部２０が行うｚ１／γの項の線形補間処理について図６を参照しながら説明する。図６は、線形補間部２０が行う線形補間処理の原理を示す図である。図６に示すように、線形補間部２０は、入力データｘＬに対応する変換データｙＬを、次式によって算出することができる。
【数４】
2004088157.tif 000006
【００５６】
次に、ガンマ変換回路１０におけるガンマ変換処理について、図１、図７、及び、図８を参照しながら説明する。図７は、ガンマ変換回路のガンマ変換処理を示すフローチャートであり、図８は、ガンマ変換回路の線形補間部の線形補間処理を示すフローチャートである。
【００５７】
図７及び図８の処理を開始すると、プライオリティエンコーダ１１は、入力データを入力し、Ｌデータを出力する（ステップＳ１０１）。
次に、減算器１２は、Ｌデータを入力し、Ｋデータを出力する（ステップＳ１０２）。
次に、シフタ１４は、入力データ及びＫデータを入力し、Ｍデータを出力する（ステップＳ１０３）。
次に、ビット抽出部１５は、Ｍデータを入力し、Ｎデータ及びＰデータを出力する（ステップＳ１０４）。
次に、テーブルアドレス作成部１６は、Ｎデータを入力し、第１のテーブルアドレスを出力する（ステップＳ１０５）。
【００５８】
次に、補間用変換テーブル格納部１７は、第１のテーブルアドレスに応じて、第１の変換データを出力する（ステップＳ１０６）。
次に、マルチプレクサ１８は、ｚｅｒｏ信号の値に応じて、０又は第１の変換データを選択して出力し、これがレジスタ２１に読み込まれる（ステップＳ１０７）。
次に、テーブルアドレス作成部１６は、第１のテーブルアドレスをインクリメントした第２のテーブルアドレスを出力する（ステップＳ１０８）。
【００５９】
次に、補間用変換テーブル格納部１７は、第２のテーブルアドレスに応じて、第２の変換データを出力する（ステップＳ１０９）。
次に、マルチプレクサ１８は、ｚｅｒｏ信号の値に応じて、０又は第２の変換データを選択出力する（ステップＳ１１０）。
次に、線形補間部２０は、第１の変換データ及び第２の変換データに基づいて、線形補間処理を行い、補間データを出力する（ステップＳ１１１）。
【００６０】
図８に示すように、線形補間処理において、線形補間部２０の減算器２２は、マルチプレクサ１８の出力データである第２の変換データからレジスタ２１の出力データである第１の変換データを減ずる（ステップＳ２０１）。
次に、乗算器２３は、減算器２２の出力データにＰデータを乗ずる（ステップＳ２０２）。
次に、シフタ２４は、乗算器２３の出力データを、「４’ｈｄ」（１３ビット分）だけ右シフトする（ステップＳ２０３）。
次に、加算器２５は、レジスタ２１の出力データである第１の変換データにシフタ２４の出力データを加え、補間データとして出力する（ステップＳ２０４）。
【００６１】
再び図７を参照すると、次に、変換テーブル格納部１３は、Ｋデータに応じて、第３の変換データを出力する（ステップＳ１１２）。
次に、乗算器１９は、第３の変換データに補間データを乗じ、ガンマ変換データとして出力する（ステップＳ１１３）。
このようにして、ガンマ変換回路１０は、入力データに応じた出力データ（ガンマ変換データ）を出力することができる。
【００６２】
次に、入力データとして「１６’ｈ０００９」が入力された場合のガンマ変換回路１０の動作について、具体的に説明する。
まず、プライオリティエンコーダ１１は、入力データ「１６’ｈ０００９」を入力すると、Ｌデータ「４’ｈ３」を減算器１２に出力すると共に、ローレベルのｚｅｒｏ信号をマルチプレクサ１８に出力する。
【００６３】
減算器１２は、「４’ｈｆ」からＬデータ「４’ｈ３」を減じた「４’ｈｃ」をＫデータとして変換テーブル格納部１３、及び、シフタ１４に出力する。
【００６４】
シフタ１４は、Ｋデータ「４’ｈｃ」を入力すると、入力データ「１６’ｈ０００９」をＫデータ「４’ｈｃ」が表わすビット数だけ左シフトさせた「１６’ｈ９０００」をＭデータとしてビット抽出部１５に出力する。
【００６５】
ビット抽出部１５は、Ｍデータ「１６’ｈ９０００」のビット番号１４，１３の２ビット「２’ｂ００」をＮデータとしてテーブルアドレス作成部１６に出力する。さらに、ビット抽出部１５は、Ｍデータ「１６’ｈ９０００」のビット番号１２〜０のビットを１６ビットにゼロ拡張した「１６’ｈ１０００」をＰデータとして乗算器２３に出力する。このＰデータ「１６’ｈ１０００」が、式（４）の「ｄ」に相当する。
【００６６】
テーブルアドレス作成部１６は、Ｎデータ「２’ｂ００」を入力すると、Ｎデータ「２’ｂ００」を第１のテーブルアドレスとして補間用変換テーブル格納部１７に出力する。さらに、テーブルアドレス作成部１６は、所定時間経過後に、Ｎデータ「２’ｂ００」をインクリメントしたＮデータ「２’ｂ０１」を第２のテーブルアドレスとして補間用変換テーブル格納部１７に出力する。
【００６７】
補間用変換テーブル格納部１７は、第１のテーブルアドレス「２’ｂ００」を入力すると、第１のテーブルアドレス「２’ｂ００」に対応する第１の変換データｙ００を出力する。さらに、補間用変換テーブル格納部１７は、所定時間経過後に、第２のテーブルアドレス「２’ｂ０１」を入力すると、第２のテーブルアドレス「２’ｂ０１」に対応する第２の変換データｙ０１を出力する。
【００６８】
マルチプレクサ１８は、ｚｅｒｏ信号がローレベルであるため、補間用変換テーブル格納部１７が出力する第１の変換データｙ００を選択出力する。さらに、マルチプレクサ１８は、所定時間経過後に、補間用変換テーブル格納部１７が出力する第２の変換データｙ０１を選択して出力する。
【００６９】
レジスタ２１は、マルチプレクサ１８が選択出力する第１の変換データｙ００を所定時間保持する。この第１の変換データｙ００が、式（４）の「ｙＭ」に対応する。
【００７０】
減算器２２は、マルチプレクサ１８が出力する第２の変換データｙ０１からレジスタ２１が保持する第１の変換データｙ００の値を減じて出力する。この減算器２２の出力データが、式（４）の「Δｙ」に対応する。
乗算器２３は、減算器２２の出力データである（ｙ０１−ｙ００）にＰデータ「１６’ｈ１０００」を乗じて出力する。この乗算器２３の出力データ（ここでは、２１２×（ｙ０１−ｙ００））が、式（４）の「ｄ×Δｙ」に対応する。
【００７１】
シフタ２４は、乗算器２３の出力データ（ここでは、２１２×（ｙ０１−ｙ００））を、１３ビット分だけ右シフトして出力する。このシフタ２４の出力データ（ここでは、２１２×（ｙ０１−ｙ００）／２１３）が、式（４）の「ｄ×Δｙ／Δｘ」に対応する。
加算器２５は、レジスタ２１が保持する第１の変換データｙ００にシフタ２４の出力データ（ここでは、２１２×（ｙ０１−ｙ００）／２１３）を加えて出力する。この加算器２５が出力するデータが、式（３）の「ｄ×Δｙ／Δｘ＋ｙＭ」に対応する。
【００７２】
図９は、本例における線形補間を示す図である。このように、線形補間部２０は、Ｍデータ「１６’ｈ９０００」に応じた出力データ（ガンマ変換データ）を出力することができる。
【００７３】
変換テーブル格納部１３は、Ｋデータ「４’ｈｃ」を入力すると、Ｋデータ「４’ｈｃ」をテーブルアドレスとして、テーブルアドレス「４’ｈｃ」に対応する変換データを出力する。
【００７４】
乗算器１９は、線形補間部２０の出力データ（ここでは、２１２×（ｙ０１−ｙ００）／２１３＋ｙＭ）に変換テーブル格納部１３の出力データを乗じて出力する。この乗算器１９が出力するデータが、式（３）に対応する。
【００７５】
次に、ガンマ変換回路１０の出力データと式（１）によって算出される値との間の誤差について、図１０を参照しながら説明する。図１０に示すように、ガンマ変換回路１０の出力データと式（１）によって算出される値との間の誤差は、最大で約７３であり、図２８に示すガンマ変換回路１１０の誤差（約１３０）の約１．７８分の１となっている。
【００７６】
このように、本実施形態によれば、変換テーブル格納部１３及び補間用変換テーブル格納部１７の記憶容量を小さくすることができる。本実施形態においては、変換テーブル格納部１３及び補間用変換テーブル格納部１７の記憶容量は２０ワードであり、従来のガンマ変換回路１００（図２６）の変換テーブル格納部１０１の記憶容量（６５５３６ワード）の約３２７７分の１に低減することができる。従って、従来のガンマ変換回路１１０（図２７）の変換テーブル格納部１１１の記憶容量（４０９６ワード）を、約２０５分の１に低減することができる。また、本実施形態によれば、出力データの誤差をガンマ変換回路１１０の誤差の約１．７８分の１に低減することができる。
【００７７】
なお、ガンマ変換回路１０をＣＰＵとプログラムによって構成することができる。その場合には、図３及び図５に示す変換テーブルのサイズが２０ワードと小さいため、変換テーブルはキャッシュメモリに入り、ガンマ変換を高速に実現することが可能となる。
【００７８】
本実施形態においては、ビット抽出部１５が、Ｍデータのビット番号１４，１３の２ビットをＮデータとして抽出することとしているが、Ｍデータのビット番号１４〜１２の３ビットをＮデータとして抽出することとしても良いし、Ｍデータのビット番号１４〜１１の４ビットをＮデータとして抽出することとしても良い。また、本実施形態においてはＭデータを補間しているが、Ｎデータのビット幅を増やすことにより、補間しなくても良い。このように、Ｎデータのビット幅を増やすことにより、出力データの誤差をより小さくすることができる。
さらに、本実施形態においては、入力データを１６ビット幅とし、出力データを１２ビット幅としているが、これらのデータを他のビット幅としても良い。
【００７９】
図１１は、本発明の第１の実施形態の変形例に係るデータ変換回路の構成を示す図である。図１１に示すように、この変形例において、線形補間部４０は、レジスタ４１、減算器４２、乗算器４３、シフタ４４及び加算器４５に加えて、マルチプレクサ４６、マルチプレクサ４７及びラッチ回路４８をさらに含んでいる。
【００８０】
マルチプレクサ４６は、補間出力制御信号がハイレベルの場合には変換テーブル格納部１３が出力する変換データを選択して出力し、補間出力制御信号がローレベルの場合にはビット抽出部１５が出力するＰデータを選択して出力する。
【００８１】
マルチプレクサ４７は、補間出力制御信号がハイレベルの場合には加算器４５が出力する補間データを選択して出力し、補間出力制御信号がローレベルの場合には減算器４２が出力するデータを選択して出力する。
【００８２】
ラッチ回路４８は補間出力制御信号がハイレベルの場合において乗算器４３が出力するガンマ変換データをラッチして出力する。
【００８３】
このように、線形補間部の乗算器を兼用することにより、ハードウエアの増大を抑えることができる。
【００８４】
次に、本発明の第２の実施形態について説明する。図１２は、本発明の第２の実施形態に係るデータ変換回路の構成を示す図である。本実施形態は、本発明をガンマ変換回路に適用したものである。本実施形態においては、入力データは１６ビット幅であり、出力データは１２ビット幅であるものとする。
図１２において、ガンマ変換回路５０は、プライオリティエンコーダ５１と、減算器５２と、変換テーブル格納部５３と、シフタ５４と、ビット抽出部５５と、テーブル格納部５６と、テーブルアドレス作成部５７と、補間用変換テーブル格納部５８と、乗算器５９と、線形補間部６０とを具備している。また、線形補間部６０は、レジスタ６１と、減算器６２と、テーブル格納部６３と、テーブル格納部６４と、ビット抽出部６５と、補正項算出部６６と、加算器６７とを含んでいる。
【００８５】
プライオリティエンコーダ５１は、１６ビット幅の入力データを入力し、入力データ中の最上位に位置する「１」のビットを検出し、検出したビットのビット番号を４ビット幅のＬデータとして出力する。
減算器５２は、「４’ｈｆ」からＬデータを減じて４ビット幅のＫデータとして出力する。
変換テーブル格納部５３は、Ｋデータをテーブルアドレスとし、２−Ｋをガンマ変換した１２ビット幅の変換データをテーブルアドレスに対応させた変換テーブルを格納しており、テーブルアドレスに応じて変換データを出力する。
【００８６】
シフタ５４は、入力データを減算器の出力するＫデータの値分だけ左シフトしてＭデータを出力する。
ビット抽出部５５は、Ｍデータを入力し、ビット番号１４〜１１の４ビットをＮデータとして出力する。
【００８７】
テーブル格納部５６は、４ビットのＮデータを２ビット幅のｒｅｐｉデータに変換するテーブルを格納しており、Ｎデータが「４’ｈ０」〜「４’ｈ２」の場合には、「２’ｂ００」をｒｅｐｉデータとして出力し、Ｎデータが「４’ｈ３」〜「４’ｈ６」の場合には、「２’ｂ０１」をｒｅｐｉデータとして出力し、Ｎデータが「４’ｈ７」〜「４’ｈａ」の場合には、「２’ｂ１０」をｒｅｐｉデータとして出力し、Ｎデータが「４’ｈｂ」〜「４’ｈｆ」の場合には、「２’ｂ１１」をｒｅｐｉデータとして出力する。
【００８８】
テーブルアドレス作成部５７は、入力した２ビット幅のｒｅｐｉデータを第１のテーブルアドレスとして出力し、所定時間経過後に、ｒｅｐｉデータをインクリメント（又はデクリメント）した第２のテーブルアドレスを出力する。
補間用変換テーブル格納部５８は、１６ビット幅のデータをガンマ変換した１２ビット幅の変換データをテーブルアドレスに対応させた変換テーブルを格納しており、第１及び第２のテーブルアドレスに応じて第１及び第２の変換データを出力する。
【００８９】
線形補間部６０は、補間用変換テーブル格納部５８が出力する第１及び第２の変換データに対して線形補間処理を行う。
ビット抽出部６５は、Ｍデータを入力し、Ｍデータ中のビット番号１０〜０の１１ビットを抽出し、抽出したデータをｘＲデータとして出力する。
【００９０】
テーブル格納部６３は、Ｎデータを所定のデータ（ｄｄデータ）に変換するテーブルを格納しており、Ｎデータが「４’ｈ０」の場合には、「０」をｄｄデータとして出力し、データが「４’ｈ１」の場合には、「１」をｄｄデータとして出力し、Ｎデータが「４’ｈ２」の場合には、「２」をｄｄデータとして出力し、Ｎデータが「４’ｈ３」の場合には、「０」をｄｄデータとして出力する。また、テーブル格納部６３は、Ｎデータが「４’ｈ４」の場合には、「１」をｄｄデータとして出力し、Ｎデータが「４’ｈ５」の場合には、「２」をｄｄデータとして出力し、Ｎデータが「４’ｈ６」の場合には、「３」をｄｄデータとして出力し、Ｎデータが「４’ｈ７」の場合には、「０」をｄｄデータとして出力する。
【００９１】
また、テーブル格納部６３は、Ｎデータが「４’ｈ８」の場合には、「１」をｄｄデータとして出力し、Ｎデータが「４’ｈ９」の場合には、「２」をｄｄデータとして出力し、Ｎデータが「４’ｈａ」の場合には、「３」をｄｄデータとして出力し、Ｎデータが「４’ｈｂ」の場合には、「０」をｄｄデータとして出力する。また、テーブル格納部６３は、Ｎデータが「４’ｈｃ」の場合には、「１」をｄｄデータとして出力し、Ｎデータが「４’ｈｄ」の場合には、「２」をｄｄデータとして出力し、Ｎデータが「４’ｈｅ」の場合には、「３」をｄｄデータとして出力し、Ｎデータが「４’ｈｆ」の場合には、「４」をｄｄデータとして出力する。
【００９２】
テーブル格納部６４は、Ｎデータを所定のデータ（ｓｐａｎデータ）に変換するテーブルを格納しており、Ｎデータが「４’ｈ０」〜「４’ｈ２」の場合には、「３」をｓｐａｎデータとして出力し、Ｎデータが「４’ｈ３」〜「４’ｈａ」の場合には、「４」をｓｐａｎデータとして出力し、Ｎデータが「４’ｈｂ」〜「４’ｈｆ」の場合には、「５」をｓｐａｎデータとして出力する。
【００９３】
図１３は、Ｍデータ、Ｍデータを所定の幅に分割したレンジ、ｄｄデータ、ｓｐａｎデータ、ｒｅｐｉデータ（テーブルアドレス）、及び、補間用変換データの対応を示す図である。図１３において、ｙ００は、Ｍデータ「１６’ｈ８０００」をガンマ変換した１２ビット幅のデータであり、ｙ０１は、Ｍデータ「１６’ｈ９８００」をガンマ変換した１２ビット幅のデータであり、ｙ１０は、Ｍデータ「１６’ｈｂ８００」をガンマ変換した１２ビット幅のデータであり、ｙ１１は、Ｍデータ「１６’ｈｄ８００」をガンマ変換した１２ビット幅のデータである。
【００９４】
図１３に示すように、例えば、Ｍデータが「１６’ｈ８０００」の場合に、テーブルアドレスは、「２’ｂ００」となり、Ｍデータが「１６’ｈ８８００」の場合にも、テーブルアドレスは、「２’ｂ００」となる。この場合、補間用変換テーブル格納部５８は、Ｍデータ「１６’ｈ８０００」をガンマ変換した補間用変換データｙ００をテーブルアドレス「２’ｂ００」に対応させて格納し、Ｍデータ「１６’ｈ８８００」をガンマ変換した補間用変換データｙ００は格納しない。このように、複数のＭデータから同一のテーブルアドレスが生成される場合には、補間用変換テーブル格納部５８は、複数のＭデータの内の最小のＭデータをガンマ変換した補間用変換データのみを格納する。
【００９５】
即ち、補間用変換テーブル格納部５８は、Ｍデータの「１６’ｈ８０００」〜「１６’ｈｆｆｆｆ」のレンジにおいて、Ｍデータ「１６’ｈ８０００」に対応する補間用変換データｙ００、並びに、「１６’ｈ８０００」〜「１６’ｈｆｆｆｆ」のレンジを３：４：４：５に分割するＭデータ「１６’ｈ９８００」、「１６’ｈｂ８００」、及び、「１６’ｈｄ８００」にそれぞれ対応する補間用変換データｙ０１、ｙ１０、及び、ｙ１１を格納することとなる。
【００９６】
ここで、Ｍデータの「１６’ｈ８０００」〜「１６’ｈ９８００」のレンジをｒｅｐ０とし、Ｍデータの「１６’ｈ９８００」〜「１６’ｈｂ８００」のレンジをｒｅｐ１とし、Ｍデータの「１６’ｈｂ８００」〜「１６’ｈｄ８００」のレンジをｒｅｐ２とし、Ｍデータの「１６’ｈｄ８００」〜「１６’ｈｆｆｆｆ」のレンジをｒｅｐ３とすると、ｒｅｐｉデータは、Ｍデータが属するレンジのｒｅｐ番号を示す。
【００９７】
また、ｓｐａｎデータは、Ｍデータが属するレンジの他の３つのレンジに対する比率となる。例えば、Ｍデータが「１６’ｈ８００１」の場合には、ｓｐａｎデータは、Ｍデータが属するレンジであるｒｅｐ０のｒｅｐ１〜ｒｅｐ３に対する比率である「３」となる。
【００９８】
再び図１２を参照すると、レジスタ６１は、補間用変換テーブル格納部５８の出力データを所定の時間保持すると共に、保持しているデータをｙ＿ｔｂｌデータとして出力する。
減算器６２は、補間用変換テーブル格納部５８の出力データからレジスタ６１の出力データを減じたデータをｓｔｅｐ＿ｙとして出力する。
補正項算出部６６は、ｄｄデータ、ｓｐａｎデータ、ｘＲデータ、及び、ｓｔｅｐ＿ｙデータを入力し、ｄｙデータを次式によって算出して出力する。ここで、２１１の指数部である「１１」は、ＭデータのＭＳＢのビット番号「１５」から、Ｎデータのビット数である「４」を引いたものである。加算器６７は、ｄｙデータをｙ＿ｔｂｌデータに加えて出力する。
【数５】
2004088157.tif 000007
【００９９】
変換テーブル格納部５３は、Ｋデータをテーブルアドレスとし、２−Ｋ／γを表す１２ビット幅の変換データをテーブルアドレスに対応させた変換テーブルを格納しており、テーブルアドレスに応じて変換データを出力する。
【０１００】
図１４は、入力データ、テーブルアドレス、及び、変換データの対応を示す図である。入力データ（本実施形態においては、「１６’ｈ００００」〜「１６’ｈｆｆｆｆ」の６５５３６通りに変化する）に対して、変換データは、ｙＦ、ｙＥ、ｙＤ、ｙＣ、ｙＢ、ｙＡ、ｙ９、ｙ８、ｙ７、ｙ６、ｙ５、ｙ４、ｙ３、ｙ２、ｙ１、ｙ０の１６データとなる。従って、変換テーブル格納部５３は、１６ワード（ここでは、１ワード＝１２ビット）の記憶容量を有すれば良いこととなる。
【０１０１】
即ち、図１４に示すように、変換テーブル格納部５３は、入力データ「１６’ｈ０００１」、「１６’ｈ０００２」、「１６’ｈ０００４」、「１６’ｈ０００８」、「１６’ｈ００１０」、「１６’ｈ００２０」、「１６’ｈ００４０」、「１６’ｈ００８０」、「１６’ｈ０１００」、「１６’ｈ０２００」、「１６’ｈ０４００」、「１６’ｈ０８００」、「１６’ｈ１０００」、「１６’ｈ２０００」、「１６’ｈ４０００」、「１６’ｈ８０００」にそれぞれ対応する変換データｙＦ、ｙＥ、ｙＤ、ｙＣ、ｙＢ、ｙＡ、ｙ９、ｙ８、ｙ７、ｙ６、ｙ５、ｙ４、ｙ３、ｙ２、ｙ１、及び、ｙ０を格納する。
【０１０２】
再び図１２を参照すると、乗算器５９は、変換テーブル格納部５３の出力データに線形補間部６０の出力データを乗じ、出力データ（ガンマ変換データ）として出力する。
【０１０３】
次に、線形補間部６０が行う線形補間処理について、図１５を参照しながら説明する。図１５は、線形補間部６０が行う線形補間処理の原理を示す図である。図１５に示すように、線形補間部６０は、Ｍデータｘに対応する補間データｙを次式によって算出することができる。
ｙ＝ｙ＿ｔｂｌ＋ｄｙ・・・（６）
【０１０４】
次に、ガンマ変換回路５０におけるガンマ変換処理について、図１２、図１６、及び、図１７を参照しながら説明する。図１６は、ガンマ変換回路のガンマ変換処理を示すフローチャートであり、図１７は、ガンマ変換回路の線形補間部の線形補間処理を示すフローチャートである。
【０１０５】
図１６及び図１７の処理を開始すると、プライオリティエンコーダ５１は、入力データを入力し、Ｌデータを出力する（ステップＳ３０１）。
次に、減算器５２は、Ｌデータを入力し、Ｋデータを出力する（ステップＳ３０２）。
次に、シフタ５４は、入力データ及びＫデータを入力し、Ｍデータを出力する（ステップＳ３０３）。
次に、ビット抽出部５５は、Ｍデータを入力し、Ｎデータを出力する（ステップＳ３０４）。
次に、テーブル格納部５６は、Ｎデータを入力し、ｒｅｐｉデータを出力する（ステップＳ３０５）。
【０１０６】
次に、テーブルアドレス作成部５７は、ｒｅｐｉデータを入力し、第１のテーブルアドレスを出力する（ステップＳ３０６）。
次に、補間用変換テーブル格納部５８は、第１のテーブルアドレスに応じて、第１の変換データを出力し、レジスタ６１はこれを保持する（ステップＳ３０７）。
【０１０７】
次に、テーブルアドレス作成部５７は、第１のテーブルアドレスをインクリメントした第２のテーブルアドレスを出力する（ステップＳ３０８）。
次に、補間用変換テーブル格納部５８は、第２のテーブルアドレスに応じて、第２の変換データを出力する（ステップＳ３０９）。
次に、線形補間部６０は、第１の変換データ及び第２の変換データに基づいて、線形補間処理を行い、補間データを出力する（ステップＳ３１０）。
【０１０８】
図１７に示すように、線形補間処理において、線形補間部６０のビット抽出部６５は、Ｍデータを入力し、ｘＲデータを出力する（ステップＳ４０１）。
次に、テーブル格納部６３は、Ｎデータを入力し、ｄｄデータを出力する（ステップＳ４０２）。
次に、テーブル格納部６４は、Ｎデータを入力し、ｓｐａｎデータを出力する（ステップＳ４０３）。
【０１０９】
次に、減算器６２は、補間用変換テーブル格納部５８の出力データである第２の変換データからレジスタ６１の出力データである第１の変換データを減じ、ｓｔｅｐ＿ｙデータを出力する（ステップＳ４０４）。
【０１１０】
次に、補正項算出部６６は、ｘＲデータ、ｄｄデータ、ｓｐａｎデータ、及び、ｓｔｅｐ＿ｙデータを入力し、ｄｙデータを出力する（ステップＳ４０５）。次に、加算器６７は、ｙ＿ｔｂｌデータにｄｙデータを加え、補間データとして出力する（ステップＳ４０６）。
【０１１１】
再び図１６を参照すると、次に、変換テーブル格納部５３は、Ｋデータに応じて、第３の変換データを出力する（ステップＳ３１１）。
次に、乗算器５９は、第３の変換データに補間データを乗じ、ガンマ変換データとして出力する（ステップＳ３１２）。
このようにして、ガンマ変換回路５０は、入力データに応じた出力データ（ガンマ変換データ）を出力することができる。
【０１１２】
次に、ガンマ変換回路５０の出力データと式（１）によって算出される値との間の誤差について、図１８を参照しながら説明する。図１８に示すように、ガンマ変換回路５０の出力データと式（１）によって算出される値との間の誤差は、最大で約５８程度であり、図２８に示すガンマ変換回路１１０の誤差（約１３０）の約２．２４分の１となっており、図１０に示すガンマ変換回路１０の誤差（約７３）の約１．２５分の１となっている。
【０１１３】
このように、本実施形態によれば、変換テーブル格納部５３及び補間用変換テーブル格納部５８が格納する変換テーブルのサイズを、第１の実施形態におけるガンマ変換回路１０の変換テーブル格納部１３及び補間用変換テーブル格納部１７が格納する変換テーブルのサイズと同一に保ったまま、ガンマ変換回路１０より誤差を小さくすることができる。
【０１１４】
なお、ガンマ変換回路５０をＣＰＵとプログラムによって構成することができる。その場合には、変換テーブルのサイズが小さいため、変換テーブルはキャッシュメモリに入り、ガンマ変換を高速に実現することが可能となる。
【０１１５】
また、本実施形態においては、ビット抽出部５５が、Ｍデータのビット番号１４〜１１の４ビットをＮデータとして抽出することとしているが、Ｍデータのビット番号１４〜１２の３ビットをＮデータとして抽出することとしても良いし、Ｍデータのビット番号１４〜１０の５ビットをＮデータとして抽出することとしても良い。Ｎデータのビット幅を増やすこととすると、出力データの誤差をより小さくすることができる。
また、本実施形態においては、入力データを１６ビット幅とし、出力データを１２ビット幅としているが、これらのデータを他のビット幅としても良い。
【０１１６】
また、本実施形態においては、Ｎデータに基づいてｒｅｐｉデータを出力するためにテーブル格納部５６を用いているが、テーブル格納部５６に代えてデコーダを用いることとしても良い。同様に、テーブル格納部６３及びテーブル格納部６４に代えてデコーダを用いることとしても良い。
【０１１７】
次に、本発明の第３の実施形態について説明する。図１９は、本発明の第３の実施形態に係るデータ変換回路の構成を示す図である。本実施形態は、本発明をガンマ変換回路に適用したものである。本実施形態においては、入力データは１６ビット幅であり、出力データは１２ビット幅であるものとする。
図１９において、ガンマ変換回路７０は、プライオリティエンコーダ７１及び７６と、減算器７２と、変換テーブル格納部７３と、シフタ７４と、ビット抽出部７５及び７９と、テーブルアドレス作成部７７と、補間用変換テーブル格納部７８と、マルチプレクサ１８と、線形補間部８０と、乗算器１９とを具備している。また、線形補間部８０は、レジスタ２１と、減算器２２と、乗算器２３と、デコーダ８１と、シフタ８２と、加算器２５とを含んでいる。
【０１１８】
プライオリティエンコーダ７１は、１６ビット幅の入力データを入力し、入力データ中の最上位に位置する「１」のビットを検出し、検出したビットのビット番号を４ビット幅のＬ１データとして出力する。また、プライオリティエンコーダ７１は、入力データ中に「１」のビットがない場合、すなわち入力データが「１６’ｈ００００」である場合には、「４’ｈ０」のＬ１データを出力すると共に、ハイレベルのｚｅｒｏ信号を出力する。
【０１１９】
減算器７２は、「４’ｈｆ」からＬ１データを減じて４ビット幅のＫデータとして出力する。
変換テーブル格納部７３は、Ｋデータをテーブルアドレスとし、２−Ｋをガンマ変換した１２ビット幅の変換データをテーブルアドレスに対応させた変換テーブルを格納しており、テーブルアドレスに応じて変換データを出力する。
シフタ７４は、入力データを減算器の出力するＫデータの値分だけ左シフトしてＭデータを出力する。
ビット抽出部７５は、Ｍデータを入力し、ビット番号１４〜１２の３ビットを抽出し、抽出した３ビットをＮデータとして出力する。
【０１２０】
プライオリティエンコーダ７６は、ビット抽出部７５から３ビット幅のＮデータを入力し、入力したＮデータ中の最上位に位置する「１」のビットを検出し、検出したビットのビット番号を２ビット幅のＬ２データとして出力する。なお、ビット番号は最下位ビットを１とし、上位ビットに向かってカウントし、入力したデータ中に「１」のビットがない場合には、Ｌ２データとして「２’ｂ００」を出力する。
【０１２１】
テーブルアドレス作成部７７は、入力した２ビット幅のＬ２データを第１のテーブルアドレスとして出力し、所定時間経過後に、Ｌ２データをインクリメント（又はデクリメント）した第２のテーブルアドレスを出力する。
補間用変換テーブル格納部７８は、ビット番号４とビット番号Ｌ２を「１」とし、その他のビットを「０」とする１６ビット幅のデータを、「４’ｈｂ」（１１ビット分）だけ左シフトさせたデータをガンマ変換した１２ビット幅の補間用変換データをテーブルアドレスに対応させた補間用変換テーブルを格納しており、第１及び第２のテーブルアドレスに応じて第１及び第２の補間用変換データを出力する。
【０１２２】
図２０は、入力データ、Ｌ１データ、Ｍデータ、Ｌ２データ（テーブルアドレス）、及び、補間用変換データの対応を示す図である。図２０において、ｙ００は、ビット番号４と入力データ「１６’ｈ０００１」に対応するビット番号Ｌ２を「１」とし、その他のビットを「０」とする１６ビット幅のデータを１１ビット分だけ左シフトさせたデータをガンマ変換した１２ビット幅のデータであり、ｙ１１は、ビット番号４と入力データ「１６’ｈ０００３」に対応するビット番号Ｌ２を「１」とし、その他のビットを「０」とする１６ビット幅のデータを１１ビット分だけ左シフトさせたデータをガンマ変換した１２ビット幅のデータであり、ｙ１０は、ビット番号４と入力データ「１６’ｈ０００５」に対応するビット番号Ｌ２を「１」とし、その他のビットを「０」とする１６ビット幅のデータを１１ビット分だけ左シフトさせたデータをガンマ変換した１２ビット幅のデータであり、ｙ０１は、ビット番号４と入力データ「１６’ｈ０００９」に対応するビット番号Ｌ２を「１」とし、その他のビットを「０」とする１６ビット幅のデータを１１ビット分だけ左シフトさせたデータをガンマ変換した１２ビット幅のデータである。
【０１２３】
図２０に示すように、例えば、入力データが「１６’ｈ０００１」の場合に、テーブルアドレスは、「２’ｂ００」となり、入力データが「１６’ｈ０００２」の場合にも、テーブルアドレスは、「２’ｂ００」となる。この場合、補間用変換テーブル格納部７８は、ビット番号４と入力データ「１６’ｈ０００１」に対応するビット番号「２’ｂ００」を「１」としてその他のビットを「０」とする１６ビット幅のデータを１１ビット分だけ左シフトさせたデータをガンマ変換した補間用変換データｙ００をテーブルアドレス「２’ｂ００」に対応させて格納し、ビット番号４と入力データ「１６’ｈ０００２」に対応するビット番号「２’ｂ００」を「１」としてその他のビットを「０」とする１６ビット幅のデータを１１ビット分だけ左シフトさせたデータをガンマ変換した補間用変換データｙ００は格納しない。このように、複数の入力データから同一のテーブルアドレスが生成される場合には、補間用変換テーブル格納部７８は、ビット番号４と複数の入力データの内の最小の入力データに対応するビット番号Ｌ２を「１」としてその他のビットを「０」とする１６ビット幅のデータを１１ビット分だけ左シフトさせたデータをガンマ変換した補間用変換データのみを格納する。
【０１２４】
図２１は、入力データ、テーブルアドレス、及び、補間用変換データの対応を示す図である。図２０において、対応する補間用変換データが補間用変換テーブル格納部７８に格納されていない入力データの表示は、図２１においては省かれている。図２０に示すように、入力データ（本実施形態においては、「１６’ｈ００００」〜「１６’ｈｆｆｆｆ」の６５５３６通りに変化する）に対して、補間用変換データは、ｙ００、ｙ０１、ｙ１０、ｙ１１の４データとなる。従って、補間用変換テーブル格納部７８は、４ワード（ここでは、１ワード＝１２ビット）の記憶容量を有すれば良いこととなる。
【０１２５】
即ち、図２１に示すように、補間用変換テーブル格納部７８は、入力データ「１６’ｈ０００１」、「１６’ｈ０００３」、「１６’ｈ０００５」、「１６’ｈ０００９」にそれぞれ対応する補間用変換データｙ００、ｙ１１、ｙ１０、及び、ｙ０１を格納する。
【０１２６】
再び図１９を参照すると、線形補間部８０は、補間用変換テーブル格納部７８が出力する第１及び第２の変換データに対して線形補間を行う。
デコーダ８１は、Ｌ２データが「２’ｂ００」の場合には１２を出力し、「２’ｂ０１」の場合には１２を出力し、「２’ｂ１０」の場合には１３を出力し、「２’ｂ１１」の場合には１４を出力する。
【０１２７】
次に、ガンマ変換回路のガンマ変換処理について、図１９、図２２、及び、図２３を参照しながら説明する。図２２は、ガンマ変換回路のガンマ変換処理を示すフローチャートであり、図２３は、ガンマ変換回路の線形補間部の線形補間処理を示すフローチャートである。
【０１２８】
図２２及び図２３の処理を開始すると、プライオリティエンコーダ７１は、入力データを入力し、Ｌ１データを出力する（ステップＳ５０１）。
次に、減算器７２は、Ｌ１データを入力し、Ｋデータを出力する（ステップＳ５０２）。
次に、シフタ７４は、入力データ及びＫデータを入力し、Ｍデータを出力する（ステップＳ５０３）。
次に、ビット抽出部７５は、Ｍデータを入力し、ビット番号１４〜１２の３ビットのＮデータを抽出する（ステップＳ５０４）。
次に、プライオリティエンコーダ７６は、Ｎデータを入力し、Ｌ２データを出力する（ステップＳ５０５）。
次に、テーブルアドレス作成部７７は、Ｌ２データを入力し、第１のテーブルアドレスを出力する（ステップＳ５０６）。
【０１２９】
次に、補間用変換テーブル格納部７８は、第１のテーブルアドレスに応じて、第１の変換データを出力する（ステップＳ５０７）。
次に、マルチプレクサ１８は、ｚｅｒｏ信号の値に応じて、０又は第１の変換データを選択出力する（ステップＳ５０８）。
次に、テーブルアドレス作成部７７は、第１のテーブルアドレスをインクリメントした第２のテーブルアドレスを出力する（ステップＳ５０９）。
【０１３０】
次に、補間用変換テーブル格納部７８は、第２のテーブルアドレスに応じて、第２の変換データを出力する（ステップＳ５１０）。
次に、マルチプレクサ１８は、ｚｅｒｏ信号の値に応じて、０又は第２の変換データを選択して出力する（ステップＳ５１１）。
次に、線形補間部８０は、第１の変換データ及び第２の変換データに基づいて、線形補間処理を行い、補間データを出力する（ステップＳ５１２）。
【０１３１】
図２３に示すように、線形補間処理において、線形補間部８０のデコーダ８１は、Ｌ２データからシフタ８２が行うシフト処理のシフト量を算出する（ステップＳ６０１）。
次に、レジスタ２１は、第１の変換データを所定の時間保持する（ステップＳ６０２）。
次に、減算器２２は、マルチプレクサ１８の出力データである第２の変換データからレジスタ２１の出力データである第１の変換データを減ずる（ステップＳ６０３）。
【０１３２】
次に、乗算器２３は、減算器２２の出力データにＰデータを乗ずる（ステップＳ６０４）。
次に、シフタ８２は、乗算器２３の出力データを、デコーダ８１の出力データに応じた量だけシフトする（ステップＳ６０５）。
次に、加算器２５は、レジスタ２１の出力データである第１の変換データにシフタ８２の出力データを加え、補間データとして出力する（ステップＳ６０６）。
【０１３３】
次に、変換テーブル格納部７３は、Ｋデータに応じて、第３の変換データを出力する（ステップＳ５１３）。
次に、乗算器１９は、補間データに第３の変換データを乗じ、ガンマ変換データとして出力する（ステップＳ５１４）。
このようにして、ガンマ変換回路７０は、入力データに応じた出力データ（ガンマ変換データ）を出力することができる。
【０１３４】
次に、ガンマ変換回路７０の出力データと式（１）によって算出される値との間の誤差について、図２４を参照しながら説明する。図２４に示すように、ガンマ変換回路７０の出力データと式（１）によって算出される値との間の誤差は、最大で約１５０程度である。
【０１３５】
このように、本実施形態によれば、変換データ格納部７８の記憶容量を小さくすることができる
【０１３６】
なお、ガンマ変換回路７０をＣＰＵとプログラムによって構成することができる。その場合には、変換テーブルのサイズが小さいため、変換テーブルはキャッシュメモリに入り、ガンマ変換を高速に実現することが可能となる。
【０１３７】
また、本実施形態においては、入力データを１６ビット幅とし、出力データを１２ビット幅としているが、これらのデータを他のビット幅としても良い。
【０１３８】
【発明の効果】
以上述べた様に、本発明によれば、変換データを格納する回路の記憶容量を小さくすると共に、出力データの誤差を小さくすることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係るガンマ変換回路の構成を示す図である。
【図２】本発明の第１の実施形態における入力データ、Ｌデータ、Ｍデータ、Ｎデータ（テーブルアドレス）、及び、補間用変換データの対応を示す図である。
【図３】本発明の第１の実施形態における入力データ、テーブルアドレス、及び、補間用変換データの対応を示す図である。
【図４】本発明の第１の実施形態における入力データ、Ｌデータ、Ｋデータ（テーブルアドレス）、及び、変換データの対応を示す図である。
【図５】本発明の第１の実施形態における入力データ、テーブルアドレス、及び、変換データの対応を示す図である。
【図６】本発明の第１の実施形態における線形補間処理の原理を示す図である。
【図７】本発明の第１の実施形態に係るガンマ変換回路の動作を示すフローチャートである。
【図８】本発明の第１の実施形態に係るガンマ変換回路の線形補間処理を示すフローチャートである。
【図９】本発明の第１の実施形態における線形補間処理によるガンマ変換データの算出の原理を示す図である。
【図１０】本発明の第１の実施形態に係るガンマ変換回路の出力データの誤差を示す図である。
【図１１】本発明の第１の実施形態の変形例に係るガンマ変換回路の構成を示す図である。
【図１２】本発明の第２の実施形態に係るガンマ変換回路の構成を示す図である。
【図１３】本発明の第２の実施形態におけるＭデータ、Ｍデータのレンジ、ｄｄデータ、ｓｐａｎデータ、ｒｅｐｉデータ（テーブルアドレス）、及び、補間用変換データの対応を示す図である。
【図１４】本発明の第２の実施形態における入力データ、テーブルアドレス、及び、変換データの対応を示す図である。
【図１５】本発明の第２の実施形態における線形補間処理の原理を示す図である。
【図１６】本発明の第２の実施形態に係るガンマ変換回路の動作を示すフローチャートである。
【図１７】本発明の第２の実施形態に係るガンマ変換回路の線形補間処理を示すフローチャートである。
【図１８】本発明の第２の実施形態に係るガンマ変換回路の出力データの誤差を示す図である。
【図１９】本発明の第３の実施形態に係るガンマ変換回路の構成を示す図である。
【図２０】本発明の第３の実施形態における入力データ、Ｌ１データ、Ｍデータ、Ｌ２データ（テーブルアドレス）、及び、補間用変換データの対応を示す図である。
【図２１】本発明の第３の実施形態における入力データ、テーブルアドレス、及び、補間用変換データの対応を示す図である。
【図２２】本発明の第３の実施形態に係るガンマ変換回路の動作を示すフローチャートである。
【図２３】本発明の第３の実施形態に係るガンマ変換回路の線形補間処理を示すフローチャートである。
【図２４】本発明の第３の実施形態に係るガンマ変換回路の出力データの誤差を示す図である。
【図２５】ガンマ変換のグラフを示す図である。
【図２６】従来のガンマ変換回路の構成を示す図である。
【図２７】従来のガンマ変換回路の構成を示す図である。
【図２８】図２７のガンマ変換回路の出力データの誤差を示す図である。
【符号の説明】
１０、３０、５０、７０　ガンマ変換回路
１１、５１、７１、７６　プライオリティエンコーダ
１２、２２、４２、５２、６２、７２　減算器
１３、５３、７３、１０１、１１１　変換テーブル格納部
１４、２４、４４、５４、７４、８２　シフタ
１５、５５、６５、７５、７９　ビット抽出部
１６、５７、７７　テーブルアドレス作成部
１７、５８、７８　補間用変換テーブル格納部
１８、４６、４７　マルチプレクサ
１９、２３、４３、５９　乗算器
２０、４０、６０、８０、１１２　線形補間部
２５、４５、６７、　加算器
４８　ラッチ回路
５６、６３、６４　テーブル格納部
６６　補正項算出部
８１　デコーダ
【図１】
2004088157.tif 000008
【図２】
2004088157.tif 000009
【図３】
2004088157.tif 000010
【図４】
2004088157.tif 000011
【図５】
2004088157.tif 000012
【図６】
2004088157.tif 000013
【図７】
2004088157.tif 000014
【図８】
2004088157.tif 000015
【図９】
2004088157.tif 000016
【図１０】
2004088157.tif 000017
【図１１】
2004088157.tif 000018
【図１２】
2004088157.tif 000019
【図１３】
2004088157.tif 000020
【図１４】
2004088157.tif 000021
【図１５】
2004088157.tif 000022
【図１６】
2004088157.tif 000023
【図１７】
2004088157.tif 000024
【図１８】
2004088157.tif 000025
【図１９】
2004088157.tif 000026
【図２０】
2004088157.tif 000027
【図２１】
2004088157.tif 000028
【図２２】
2004088157.tif 000029
【図２３】
2004088157.tif 000030
【図２４】
2004088157.tif 000031
【図２５】
2004088157.tif 000032
【図２６】
2004088157.tif 000033
【図２７】
2004088157.tif 000034
【図２８】
2004088157.tif 000035