JP3952804B2 - データ処理方法およびデータ処理装置 - Google Patents
データ処理方法およびデータ処理装置 Download PDFInfo
- Publication number
- JP3952804B2 JP3952804B2 JP2002049398A JP2002049398A JP3952804B2 JP 3952804 B2 JP3952804 B2 JP 3952804B2 JP 2002049398 A JP2002049398 A JP 2002049398A JP 2002049398 A JP2002049398 A JP 2002049398A JP 3952804 B2 JP3952804 B2 JP 3952804B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- address
- data
- numerical range
- registered
- 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
Links
Images
Landscapes
- Image Processing (AREA)
- Processing Of Color Television Signals (AREA)
- Facsimile Image Signal Circuits (AREA)
- Color Image Communication Systems (AREA)
Description
【0001】
【発明の属する技術分野】
この発明は、演算結果が所定の数値範囲に収まるように補正を行うデータ処理方法に関し、例えばYUV形式の画像信号をRGB形式の画像データに変換する場合に利用して特に有用な技術に関する。
【0002】
【従来の技術】
例えばCMOS(相補型金属酸化膜半導体)イメージセンサから取り込んだ画像を情報処理装置のディスプレイに表示させる場合などに、YUV形式の画像データをRGB形式に変換する必要が生じる。YUV形式とは、輝度信号(Y)、輝度信号と赤色成分の差(U)、輝度信号と青色成分の差(V)の3つの情報で色を表す形式、RGB形式は、赤色成分(R)と緑色成分(G)と青色成分(B)の3つの情報で色を表わす形式である。
YUV形式からRGB形式への変換は画素単位で行わなければならないので、例えばCIFサイズ(352×288)の1画面分の画像データを変換するのに352×288=101376画素分の演算を繰り返し行う必要がある。従って、動画再生などを行う場合には、上記YUV形式からRGB形式への変換処理を高速に実行する必要がある。
【0003】
また、YUV形式からRGB形式へ変換を行う際には、YUV形式の誤差によりRGB形式へ変換演算を行った後に、画像データの値が所定の数値範囲(例えば0〜255)から外れてしまうことがある。そのため、数値範囲から外れたデータを数値範囲内に収まるように補正する補正処理を行わなければならない。
【0004】
【発明が解決しようとする課題】
図5には、従来の上記補正処理のフローチャートを示す。図中、Dr[n],Dg[n],Db[n]はn番画素におけるRGB形式の各色成分のデータで演算処理後のもの、Dr’[n],Dg’[n],Db’[n]はn番画素におけるRGB形式の各色成分のデータで補正処理後のものである。
図5に示されるように、従来の補正処理では、演算で求めたRGB形式の各色成分のデータ値を条件分岐(ステップS22,S24,S27,S29,S32,S34)により所定の数値範囲(0〜255)にあるか無いか判別し、判別結果に応じて所定の数値範囲から外れていたデータについては数値範囲の上限又は下限に丸める処理(ステップS23,S25,S28,S29,S33,S35)を行っている。
【0005】
しかしながら、CPU(Central Processing Unit)がプログラムコードを逐一実行して1つの処理を行うソフトウェア処理の場合、一般に条件分岐処理の実行速度は遅くなるため、図5の補正処理のように条件分岐が幾重もあると良好な処理速度が望めないという問題があった。
【0006】
この発明の目的は、演算結果が所定の数値範囲から外れた場合に値をこの数値範囲内に収める補正処理を高速に行うことの出来るデータ処理方法を提供することにある。
この発明の他の目的は、画像データをYUV形式からRGB形式への変換を高速に且つ低負荷に実行することの出来るデータ処理装置を提供することにある。この発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添附図面から明らかになるであろう。
【0007】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を説明すれば、下記のとおりである。
0番地に任意の値が登録可能で、且つ、1番地からX番地(Xは1以上の整数)までに数値範囲(例えば0〜255)の最大値が、Y番地(YはXより大きい整数)から最終番地までに数値範囲の最小値がそれぞれ登録された変換テーブルを設け、nビットの数値範囲で定義される値をnビットより大きなビット数演算で求めた結果を受け、この演算結果の下位nビットを上記変換テーブルの0番地に登録し、その後、上記演算結果の上位ビットをアドレスとして上記変換テーブルから登録値を引き出して補正値とするものである。これにより、演算結果を所定の数値範囲内に収めるデータ処理を高速に行うことが出来る。
また、このようなデータ処理を、画像データをYUV形式からRGB形式に変換する際の補正処理に利用することで、画像データの変換処理の高速化および負荷の低減を図ることが出来る。
【0008】
【発明の実施の形態】
以下、本発明の好適な実施例を図1〜図4の図面に基づいて説明する。
図1は、本発明を適用して好適なカメラ付き情報処理端末の要部を示すブロック図である。
本発明の実施例に係るカメラ付き情報処理端末は、CMOSイメージセンサから取り込んだYUV形式の画像信号をデジタル変換して供給する撮像手段としてのCMOSカメラ10や、液晶ディスプレーなどRGB形式の画像データを受けて表示出力を行う表示部50、並びに、レジスタ21や算術演算ユニット22を用いて各種演算を行う演算手段および表示制御など情報処理端末の全体的な制御を行う制御手段として機能するCPU20、このCPU20に作業空間31を提供するRAM(Random Access Memory)30、CPU20が実行する制御プログラム41や制御データが格納されたROM(Read Only Memory)40等から構成されている。
このような情報処理端末において、CMOSカメラ10により取り込まれた画像を表示部50に出力させる場合には、CMOSカメラ10から供給されたYUV形式の画像データをCPU20が制御プログラム41に従ってRGB形式の画像データへ変換して表示部50に出力するようになっている。
【0009】
次に、上記CPU20により実行されるYUV形式からRGB形式への画像データの形式変換処理について説明を行う。
次式(1)〜(3)は、YUV形式のデータからRGB形式のデータを得る一般的な関係式である。
R = 1.164 (Y-16) + 1.596 (U-128) ・・・(1)
G = 1.164 (Y-16) - 0.813 (U-128) - 0.391 (V-128) ・・・(2)
B = 1.164 (Y-16) + 2.018 (V-128) ・・・(3)
ここで、R,G,BはRGB形式の各成分の値、Y,U,VはYUV形式の各成分の値であり、この実施例ではYは16〜235の整数値、UとVは0〜255の整数値を取りえるものである。
【0010】
YUV形式データからRGB形式データを得るには、CPU20により上記の数式(1)〜(3)の演算を行わせることで可能であるが、この実施例では、さらに変換処理を高速に行うために上記の数式に替えて配列Array1〜Array5を用いた次式(4)〜(6)を用いている。
R = Array1[Y] + Array2[U] ・・・(4)
G = Array1[Y] - Array3[U] - Array4[V] ・・・(5)
B = Array1[Y] + Array5[V] ・・・(6)
これらの数式(4)〜(6)は、上記関係式(1)〜(3)の右辺の各項を配列に置き換えたものである。すなわち、数式(1)の右辺第1項と数式(4)の右辺第1項とが対応し、数式(1)の右辺第2項と数式(4)の右辺第2項とが対応している。その他の項も同様である。
【0011】
図2には、上記配列の具体例として配列Array1のデータチャートを示す。図中「0x」は16進数表記を表わす。
各配列Array1〜Array5のインデックスは、数式(1)〜(3)の対応項に含まれる変数(Y,U,Vの何れか)と同値なものとして扱われ、「0〜255」の値をとるように設定されている。また、各配列Array1〜Array5の要素は、インデックスの数値を該当する対応項の変数(Y,U,Vの何れか)に代入し、少数点以下を切り捨て或いは四捨五入して得られた値となっている。すなわち、Array1[20(十進数)]は1.164(20−16)=4.656から小数点以下を切り捨てた値「4」となっている。
【0012】
また、配列Array1〜Array5の各要素には、図2にも示されるように、符号有り(符号付)の2バイト(16ビット)データが使用されている。この実施例では、RGB形式の各色成分のとる値は1バイトの数値範囲(0〜255)であるので、それよりビットサイズが1バイト大きく設定されている。
これらの配列Array1〜Array5は、画像データの形式変換処理の前にRAM30の作業領域に展開されて形成されるものである。また、配列の値は固定であるのでROM40内に格納しておくことも出来る。
なお、Array1については、その変数Yが「16〜235」の値しか取らないので、インデックス「0〜15,236〜255」の各要素は使われることがなく、その値は任意として構わない。
【0013】
この実施例に係る画像データの形式変換処理では、先ず、CPU20により符号付き2バイトデータの算術処理により上記数式(4)〜(6)の演算が実行され、画素ごとに符号付き2バイトデータの演算結果が得られる。
数式(4)〜(6)の演算処理では、YUV形式の誤差等により演算結果の値は、予め設定されたRGB形式のデータ範囲(0〜255)に収まらない場合、すなわち「255」より大きくなる場合と「0」より小さくなる場合とが生じることがある。
そのため、この画像データ形式変換処理においては、上記演算処理の後、演算結果の値が所定のデータ範囲から外れている場合に値をデータ範囲内に収める補正処理を行う。補正処理は上記演算結果の上位1バイトを引き数アドレスとした変換テーブルを用いて行われる。
【0014】
図3には、上記変換テーブルを表わしたデータチャートを示す。
この変換テーブルは、1バイトのアドレス範囲(“00h”〜“FFh”)にデータ登録領域を有し、各エントリに1バイトのデータが登録されるデータテーブルである。そして、相対アドレス“0…00h”番地のエントリには任意の1バイトデータが登録可能になっているとともに、“0…01h”〜“0…7Fh”番地には“FFh(=255)”の値が、“0…80h”〜“0…FFh”番地には“00h(=0)”の値が、それぞれ登録されている。変換テーブルは、その記憶手段としてRAM30の記憶領域32に形成される。
【0015】
そして、この変換テーブルを用いて上記の補正処理が次のように行われる。図4はこの補正処理の処理手順を示すフローチャートである。このフローチャートにおいて、Dr[n],Dg[n],Db[n]はn番画素の各色成分における数式(4)〜(6)の各演算結果のデータ、Dr’[n],Dg’[n],Db’[n]はn番画素の各色成分における補正後のデータ、T[X]は図3の変換テーブルのXアドレスにおける登録データを表わしている。
補正処理は、画素ごと、色成分ごとに行われる。例えば、赤色成分の補正処理においては、先ず、赤色成分の演算結果データDr[n]の下位1バイトを変換テーブルの0番地に登録する(ステップS2)。これは、演算結果の値が数値範囲(0〜255)内であった場合に、この値をそのまま補正値として返すためのものである。
【0016】
次いで、同じ赤色成分の演算結果データDr[n]の上位1バイトを引き数アドレスとして変換テーブルから登録データを引き出し、それを補正データDr’[n]とする(ステップS3)。
【0017】
一般的なCPUによる符号付き2バイトデータの算術処理では、「1,0,−1」と云った整数列は「0001h,0000h,FFFFh」のように連続して扱われる。そのため、「0」より小さい値、例えば「−256〜−1」は「FF**h(*は任意)」と表わされる。また、「255」より大きい値、例えば「256〜511」は「01**h」と表わされ、「0〜255」の値は「00**h」と表わされる。
従って、上記のステップS3の処理により、演算結果Dr[n]が「0〜255」の範囲内であれば上位1バイト“00h”が引き数アドレスとなって、変換テーブルの0番地の登録データ、すなわち、ステップS2で登録した演算結果Dr[n]の下位1バイト(すなわち演算結果Dr[n]と同値)が補正値として得られる。
【0018】
また、演算結果Dr[n]が「255」より大きい値、例えば「256〜511」になった場合には、上位1バイト“01h”が引き数アドレスとなって、変換テーブルの1番地の登録データ“FFh(=255)”が補正処理の結果として得られる。
また、演算結果Dr[n]が「0」より小さい値、例えば「−256〜−1」になった場合には、上位1バイト“FFh”が引き数アドレスとなって、変換テーブルの最終番地の登録データ“00h(=0)”が補正処理の結果として得られる。
【0019】
すなわち、上記のステップS2,S3の処理により、演算結果の値が数値範囲(0〜255)内であればその値が、数値範囲より小さければ最小値「0」が、数値範囲より大きければ最大値「255」が変換テーブルから返されるようになっている。
そして、同様の処理を緑色成分と青色成分についても行い(ステップS4〜S7)、これら各色成分の補正処理をステップS1,S8,S9の繰返し処理により0番画素からN番画素まで繰り返して1画面分の画像データの補正処理が完了する。
なお、この実施例の演算内容では、演算結果となる値が「−256〜511」の範囲で十分カバーできるので、データテーブルで使用される個所は0番と1番と最終番地のみとなっている。従って、その他の使用されない番地にはデータを登録してもしなくてもよく、また、登録データの値も任意である。
【0020】
図3の変換テーブルにあっては、演算結果の値がさらに大きな範囲にひろがるような場合に、中ほどの番地まで使用されることになる。例えば、演算結果の値が「−215(=−32768)〜215−1(=32767)」の範囲にひろがるような場合に変換テーブルの全ての番地が使用されることなる。そして、演算結果の値が「−215〜−1」の場合には最小値「0」が返され、演算結果の値が「256〜215−1」の場合には最大値「255」が返される。
【0021】
また、図3の変換テーブルにおいては登録データが最小値“00h”で埋められる範囲と最大値“FFh”で埋められる範囲の境が中間アドレス“7Fh”,“80h”の間になっているが、この境となるアドレス位置を変化させることで、対応可能な演算結果の値を負の方向にずらしたり、正の方向にずらしたりすることが出来る。
例えば、境となるアドレス位置を“BFh”,“C0h”間にずらしてアドレス“01h”〜“BFh”の範囲に最大値 “FFh”を登録し、残りのアドレス“C0h”〜“FFh”の範囲に最小値“00h”を登録すれば、演算結果の値が正の方向にずれた「−214(=−16384)〜3×214−1(=49151)」の範囲に広がるような演算処理の場合に対応させることが出来る。そして、演算結果の値が「−16384〜−1」となった場合に“00h”の値が返され、演算結果の値が「256〜49151」となった場合に“FFh”の値が返される。
【0022】
以上のように、この実施例の画像データの形式変換処理によれば、数式(4)〜(6)の演算処理により得られた演算結果を、RGB形式データの数値範囲(0〜255)に収める補正処理が、図5の従来方式に較べて分岐命令の数が大幅に減るため、処理の実行スピードが大幅に高速になる。
それゆえ、CMOSカメラ10から取り込んだYUV形式の画像データを、高速に且つCPU20にあまり負荷を掛けずにRGB形式の画像データへ変換することができ、そのまま表示部50に出力して表示させることで、CMOSカメラ10から取り込んだ画像を動画としてリアルタイムに表示部50に表示することも可能となる。
【0023】
以上本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は上記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
例えば、上記実施例では、1バイト(=8ビット)の数値範囲(0〜255)で定義されるデータを2バイトの算術処理で求めるように説明したが、2バイトではなく10ビットの算術処理により求めるようにしても、同様の補正処理を行うことが出来る。この場合、変換テーブルとしては演算結果の上位2ビットを引き数アドレスとする小さな変換テーブルにより対応することが出来る。なお、実施例では、CPUにより演算処理が行われる場合を想定しているので、CPUが扱いやすいデータとして2バイトのデータを用いている。従って、演算処理から補正処理までをハード的な構成で行う場合には、最小構成として10ビットの算術処理や2ビットアドレスの小さな変換テーブルを用いた方が効率的である。
【0024】
また、例えば演算結果が数値範囲(0〜255)の上限又は下限の何れか一方にのみ外れる可能性があり、他方に外れる可能性がないような場合には、9ビットの算術処理と、演算結果の上位1ビットをアドレスとする変換テーブルとを用いて補正処理を行うことも可能である。
【0025】
また、上記実施例では、1バイトの数値範囲(0〜255)で定義されるデータについて補正を行う場合について説明したが、2ビット、4ビット、12ビット、16ビットなど、ビットサイズが異なる数値範囲で定義されるデータに対しても同様に本発明を適用することが出来る。
【0026】
また、上記実施例や変形例では、ビットデータやバイトデータなど2進数のデータを用いた場合を説明したが、例えば3進数や5進数など任意のn進数のデータを用いることで、様々な数値範囲で定義されるデータについて補正処理を行うことが出来る。すなわち、2進数のデータを用いた場合、データの上限下限は8ビットデータで「0〜255(=28−1)」、7ビットデータで「0〜127(=27−1)」など、2進数に依存した値になってしまうが、例えば、10進数のデータを用いれば、データの上限下限を4桁データで「0〜999(104−1)」、5桁データで「0〜9999(105−1)」に出来るなど、異なる数値範囲に設定することが出来る。
【0027】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野である画像データをYUV形式からRGB形式に変換する場合について説明したがこの発明はそれに限定されるものでなく、演算結果を所定の数値範囲に収めるような種々のデータ処理に広く利用することができる。
【0028】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、本発明に従うと、演算結果を所定の数値範囲に収めるデータ処理を高速に行える。これによって、例えば画像データをYUV形式からRGB形式に変換するデータ処理に応用することで、撮像手段から取り込んだ画像データを動画像としてリアルタイムで表示出力する場合に、データ処理に係る負担を大幅に軽減できると云う効果がある。
【図面の簡単な説明】
【図1】本発明を適用して好適なカメラ付き情報処理端末の要部を示したブロック図である。
【図2】本発明の実施例に係る画像データの形式変換処理の演算処理に用いられるデータ配列の一例を示すデータチャートである。
【図3】本発明の実施例に係る画像データの形式変換処理の補正処理に用いられる変換テーブルの一例を示すデータチャートである。
【図4】図3の変換テーブルを用いた補正処理の手順を示すフローチャートである。
【図5】従来の画像データの形式変換処理における補正処理の手順を示すフローチャートである。
【符号の説明】
10 CMOSカメラ
20 CPU
22 算術演算ユニット
30 RAM
40 ROM
50 表示部
【発明の属する技術分野】
この発明は、演算結果が所定の数値範囲に収まるように補正を行うデータ処理方法に関し、例えばYUV形式の画像信号をRGB形式の画像データに変換する場合に利用して特に有用な技術に関する。
【0002】
【従来の技術】
例えばCMOS(相補型金属酸化膜半導体)イメージセンサから取り込んだ画像を情報処理装置のディスプレイに表示させる場合などに、YUV形式の画像データをRGB形式に変換する必要が生じる。YUV形式とは、輝度信号(Y)、輝度信号と赤色成分の差(U)、輝度信号と青色成分の差(V)の3つの情報で色を表す形式、RGB形式は、赤色成分(R)と緑色成分(G)と青色成分(B)の3つの情報で色を表わす形式である。
YUV形式からRGB形式への変換は画素単位で行わなければならないので、例えばCIFサイズ(352×288)の1画面分の画像データを変換するのに352×288=101376画素分の演算を繰り返し行う必要がある。従って、動画再生などを行う場合には、上記YUV形式からRGB形式への変換処理を高速に実行する必要がある。
【0003】
また、YUV形式からRGB形式へ変換を行う際には、YUV形式の誤差によりRGB形式へ変換演算を行った後に、画像データの値が所定の数値範囲(例えば0〜255)から外れてしまうことがある。そのため、数値範囲から外れたデータを数値範囲内に収まるように補正する補正処理を行わなければならない。
【0004】
【発明が解決しようとする課題】
図5には、従来の上記補正処理のフローチャートを示す。図中、Dr[n],Dg[n],Db[n]はn番画素におけるRGB形式の各色成分のデータで演算処理後のもの、Dr’[n],Dg’[n],Db’[n]はn番画素におけるRGB形式の各色成分のデータで補正処理後のものである。
図5に示されるように、従来の補正処理では、演算で求めたRGB形式の各色成分のデータ値を条件分岐(ステップS22,S24,S27,S29,S32,S34)により所定の数値範囲(0〜255)にあるか無いか判別し、判別結果に応じて所定の数値範囲から外れていたデータについては数値範囲の上限又は下限に丸める処理(ステップS23,S25,S28,S29,S33,S35)を行っている。
【0005】
しかしながら、CPU(Central Processing Unit)がプログラムコードを逐一実行して1つの処理を行うソフトウェア処理の場合、一般に条件分岐処理の実行速度は遅くなるため、図5の補正処理のように条件分岐が幾重もあると良好な処理速度が望めないという問題があった。
【0006】
この発明の目的は、演算結果が所定の数値範囲から外れた場合に値をこの数値範囲内に収める補正処理を高速に行うことの出来るデータ処理方法を提供することにある。
この発明の他の目的は、画像データをYUV形式からRGB形式への変換を高速に且つ低負荷に実行することの出来るデータ処理装置を提供することにある。この発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添附図面から明らかになるであろう。
【0007】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を説明すれば、下記のとおりである。
0番地に任意の値が登録可能で、且つ、1番地からX番地(Xは1以上の整数)までに数値範囲(例えば0〜255)の最大値が、Y番地(YはXより大きい整数)から最終番地までに数値範囲の最小値がそれぞれ登録された変換テーブルを設け、nビットの数値範囲で定義される値をnビットより大きなビット数演算で求めた結果を受け、この演算結果の下位nビットを上記変換テーブルの0番地に登録し、その後、上記演算結果の上位ビットをアドレスとして上記変換テーブルから登録値を引き出して補正値とするものである。これにより、演算結果を所定の数値範囲内に収めるデータ処理を高速に行うことが出来る。
また、このようなデータ処理を、画像データをYUV形式からRGB形式に変換する際の補正処理に利用することで、画像データの変換処理の高速化および負荷の低減を図ることが出来る。
【0008】
【発明の実施の形態】
以下、本発明の好適な実施例を図1〜図4の図面に基づいて説明する。
図1は、本発明を適用して好適なカメラ付き情報処理端末の要部を示すブロック図である。
本発明の実施例に係るカメラ付き情報処理端末は、CMOSイメージセンサから取り込んだYUV形式の画像信号をデジタル変換して供給する撮像手段としてのCMOSカメラ10や、液晶ディスプレーなどRGB形式の画像データを受けて表示出力を行う表示部50、並びに、レジスタ21や算術演算ユニット22を用いて各種演算を行う演算手段および表示制御など情報処理端末の全体的な制御を行う制御手段として機能するCPU20、このCPU20に作業空間31を提供するRAM(Random Access Memory)30、CPU20が実行する制御プログラム41や制御データが格納されたROM(Read Only Memory)40等から構成されている。
このような情報処理端末において、CMOSカメラ10により取り込まれた画像を表示部50に出力させる場合には、CMOSカメラ10から供給されたYUV形式の画像データをCPU20が制御プログラム41に従ってRGB形式の画像データへ変換して表示部50に出力するようになっている。
【0009】
次に、上記CPU20により実行されるYUV形式からRGB形式への画像データの形式変換処理について説明を行う。
次式(1)〜(3)は、YUV形式のデータからRGB形式のデータを得る一般的な関係式である。
R = 1.164 (Y-16) + 1.596 (U-128) ・・・(1)
G = 1.164 (Y-16) - 0.813 (U-128) - 0.391 (V-128) ・・・(2)
B = 1.164 (Y-16) + 2.018 (V-128) ・・・(3)
ここで、R,G,BはRGB形式の各成分の値、Y,U,VはYUV形式の各成分の値であり、この実施例ではYは16〜235の整数値、UとVは0〜255の整数値を取りえるものである。
【0010】
YUV形式データからRGB形式データを得るには、CPU20により上記の数式(1)〜(3)の演算を行わせることで可能であるが、この実施例では、さらに変換処理を高速に行うために上記の数式に替えて配列Array1〜Array5を用いた次式(4)〜(6)を用いている。
R = Array1[Y] + Array2[U] ・・・(4)
G = Array1[Y] - Array3[U] - Array4[V] ・・・(5)
B = Array1[Y] + Array5[V] ・・・(6)
これらの数式(4)〜(6)は、上記関係式(1)〜(3)の右辺の各項を配列に置き換えたものである。すなわち、数式(1)の右辺第1項と数式(4)の右辺第1項とが対応し、数式(1)の右辺第2項と数式(4)の右辺第2項とが対応している。その他の項も同様である。
【0011】
図2には、上記配列の具体例として配列Array1のデータチャートを示す。図中「0x」は16進数表記を表わす。
各配列Array1〜Array5のインデックスは、数式(1)〜(3)の対応項に含まれる変数(Y,U,Vの何れか)と同値なものとして扱われ、「0〜255」の値をとるように設定されている。また、各配列Array1〜Array5の要素は、インデックスの数値を該当する対応項の変数(Y,U,Vの何れか)に代入し、少数点以下を切り捨て或いは四捨五入して得られた値となっている。すなわち、Array1[20(十進数)]は1.164(20−16)=4.656から小数点以下を切り捨てた値「4」となっている。
【0012】
また、配列Array1〜Array5の各要素には、図2にも示されるように、符号有り(符号付)の2バイト(16ビット)データが使用されている。この実施例では、RGB形式の各色成分のとる値は1バイトの数値範囲(0〜255)であるので、それよりビットサイズが1バイト大きく設定されている。
これらの配列Array1〜Array5は、画像データの形式変換処理の前にRAM30の作業領域に展開されて形成されるものである。また、配列の値は固定であるのでROM40内に格納しておくことも出来る。
なお、Array1については、その変数Yが「16〜235」の値しか取らないので、インデックス「0〜15,236〜255」の各要素は使われることがなく、その値は任意として構わない。
【0013】
この実施例に係る画像データの形式変換処理では、先ず、CPU20により符号付き2バイトデータの算術処理により上記数式(4)〜(6)の演算が実行され、画素ごとに符号付き2バイトデータの演算結果が得られる。
数式(4)〜(6)の演算処理では、YUV形式の誤差等により演算結果の値は、予め設定されたRGB形式のデータ範囲(0〜255)に収まらない場合、すなわち「255」より大きくなる場合と「0」より小さくなる場合とが生じることがある。
そのため、この画像データ形式変換処理においては、上記演算処理の後、演算結果の値が所定のデータ範囲から外れている場合に値をデータ範囲内に収める補正処理を行う。補正処理は上記演算結果の上位1バイトを引き数アドレスとした変換テーブルを用いて行われる。
【0014】
図3には、上記変換テーブルを表わしたデータチャートを示す。
この変換テーブルは、1バイトのアドレス範囲(“00h”〜“FFh”)にデータ登録領域を有し、各エントリに1バイトのデータが登録されるデータテーブルである。そして、相対アドレス“0…00h”番地のエントリには任意の1バイトデータが登録可能になっているとともに、“0…01h”〜“0…7Fh”番地には“FFh(=255)”の値が、“0…80h”〜“0…FFh”番地には“00h(=0)”の値が、それぞれ登録されている。変換テーブルは、その記憶手段としてRAM30の記憶領域32に形成される。
【0015】
そして、この変換テーブルを用いて上記の補正処理が次のように行われる。図4はこの補正処理の処理手順を示すフローチャートである。このフローチャートにおいて、Dr[n],Dg[n],Db[n]はn番画素の各色成分における数式(4)〜(6)の各演算結果のデータ、Dr’[n],Dg’[n],Db’[n]はn番画素の各色成分における補正後のデータ、T[X]は図3の変換テーブルのXアドレスにおける登録データを表わしている。
補正処理は、画素ごと、色成分ごとに行われる。例えば、赤色成分の補正処理においては、先ず、赤色成分の演算結果データDr[n]の下位1バイトを変換テーブルの0番地に登録する(ステップS2)。これは、演算結果の値が数値範囲(0〜255)内であった場合に、この値をそのまま補正値として返すためのものである。
【0016】
次いで、同じ赤色成分の演算結果データDr[n]の上位1バイトを引き数アドレスとして変換テーブルから登録データを引き出し、それを補正データDr’[n]とする(ステップS3)。
【0017】
一般的なCPUによる符号付き2バイトデータの算術処理では、「1,0,−1」と云った整数列は「0001h,0000h,FFFFh」のように連続して扱われる。そのため、「0」より小さい値、例えば「−256〜−1」は「FF**h(*は任意)」と表わされる。また、「255」より大きい値、例えば「256〜511」は「01**h」と表わされ、「0〜255」の値は「00**h」と表わされる。
従って、上記のステップS3の処理により、演算結果Dr[n]が「0〜255」の範囲内であれば上位1バイト“00h”が引き数アドレスとなって、変換テーブルの0番地の登録データ、すなわち、ステップS2で登録した演算結果Dr[n]の下位1バイト(すなわち演算結果Dr[n]と同値)が補正値として得られる。
【0018】
また、演算結果Dr[n]が「255」より大きい値、例えば「256〜511」になった場合には、上位1バイト“01h”が引き数アドレスとなって、変換テーブルの1番地の登録データ“FFh(=255)”が補正処理の結果として得られる。
また、演算結果Dr[n]が「0」より小さい値、例えば「−256〜−1」になった場合には、上位1バイト“FFh”が引き数アドレスとなって、変換テーブルの最終番地の登録データ“00h(=0)”が補正処理の結果として得られる。
【0019】
すなわち、上記のステップS2,S3の処理により、演算結果の値が数値範囲(0〜255)内であればその値が、数値範囲より小さければ最小値「0」が、数値範囲より大きければ最大値「255」が変換テーブルから返されるようになっている。
そして、同様の処理を緑色成分と青色成分についても行い(ステップS4〜S7)、これら各色成分の補正処理をステップS1,S8,S9の繰返し処理により0番画素からN番画素まで繰り返して1画面分の画像データの補正処理が完了する。
なお、この実施例の演算内容では、演算結果となる値が「−256〜511」の範囲で十分カバーできるので、データテーブルで使用される個所は0番と1番と最終番地のみとなっている。従って、その他の使用されない番地にはデータを登録してもしなくてもよく、また、登録データの値も任意である。
【0020】
図3の変換テーブルにあっては、演算結果の値がさらに大きな範囲にひろがるような場合に、中ほどの番地まで使用されることになる。例えば、演算結果の値が「−215(=−32768)〜215−1(=32767)」の範囲にひろがるような場合に変換テーブルの全ての番地が使用されることなる。そして、演算結果の値が「−215〜−1」の場合には最小値「0」が返され、演算結果の値が「256〜215−1」の場合には最大値「255」が返される。
【0021】
また、図3の変換テーブルにおいては登録データが最小値“00h”で埋められる範囲と最大値“FFh”で埋められる範囲の境が中間アドレス“7Fh”,“80h”の間になっているが、この境となるアドレス位置を変化させることで、対応可能な演算結果の値を負の方向にずらしたり、正の方向にずらしたりすることが出来る。
例えば、境となるアドレス位置を“BFh”,“C0h”間にずらしてアドレス“01h”〜“BFh”の範囲に最大値 “FFh”を登録し、残りのアドレス“C0h”〜“FFh”の範囲に最小値“00h”を登録すれば、演算結果の値が正の方向にずれた「−214(=−16384)〜3×214−1(=49151)」の範囲に広がるような演算処理の場合に対応させることが出来る。そして、演算結果の値が「−16384〜−1」となった場合に“00h”の値が返され、演算結果の値が「256〜49151」となった場合に“FFh”の値が返される。
【0022】
以上のように、この実施例の画像データの形式変換処理によれば、数式(4)〜(6)の演算処理により得られた演算結果を、RGB形式データの数値範囲(0〜255)に収める補正処理が、図5の従来方式に較べて分岐命令の数が大幅に減るため、処理の実行スピードが大幅に高速になる。
それゆえ、CMOSカメラ10から取り込んだYUV形式の画像データを、高速に且つCPU20にあまり負荷を掛けずにRGB形式の画像データへ変換することができ、そのまま表示部50に出力して表示させることで、CMOSカメラ10から取り込んだ画像を動画としてリアルタイムに表示部50に表示することも可能となる。
【0023】
以上本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は上記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
例えば、上記実施例では、1バイト(=8ビット)の数値範囲(0〜255)で定義されるデータを2バイトの算術処理で求めるように説明したが、2バイトではなく10ビットの算術処理により求めるようにしても、同様の補正処理を行うことが出来る。この場合、変換テーブルとしては演算結果の上位2ビットを引き数アドレスとする小さな変換テーブルにより対応することが出来る。なお、実施例では、CPUにより演算処理が行われる場合を想定しているので、CPUが扱いやすいデータとして2バイトのデータを用いている。従って、演算処理から補正処理までをハード的な構成で行う場合には、最小構成として10ビットの算術処理や2ビットアドレスの小さな変換テーブルを用いた方が効率的である。
【0024】
また、例えば演算結果が数値範囲(0〜255)の上限又は下限の何れか一方にのみ外れる可能性があり、他方に外れる可能性がないような場合には、9ビットの算術処理と、演算結果の上位1ビットをアドレスとする変換テーブルとを用いて補正処理を行うことも可能である。
【0025】
また、上記実施例では、1バイトの数値範囲(0〜255)で定義されるデータについて補正を行う場合について説明したが、2ビット、4ビット、12ビット、16ビットなど、ビットサイズが異なる数値範囲で定義されるデータに対しても同様に本発明を適用することが出来る。
【0026】
また、上記実施例や変形例では、ビットデータやバイトデータなど2進数のデータを用いた場合を説明したが、例えば3進数や5進数など任意のn進数のデータを用いることで、様々な数値範囲で定義されるデータについて補正処理を行うことが出来る。すなわち、2進数のデータを用いた場合、データの上限下限は8ビットデータで「0〜255(=28−1)」、7ビットデータで「0〜127(=27−1)」など、2進数に依存した値になってしまうが、例えば、10進数のデータを用いれば、データの上限下限を4桁データで「0〜999(104−1)」、5桁データで「0〜9999(105−1)」に出来るなど、異なる数値範囲に設定することが出来る。
【0027】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野である画像データをYUV形式からRGB形式に変換する場合について説明したがこの発明はそれに限定されるものでなく、演算結果を所定の数値範囲に収めるような種々のデータ処理に広く利用することができる。
【0028】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、本発明に従うと、演算結果を所定の数値範囲に収めるデータ処理を高速に行える。これによって、例えば画像データをYUV形式からRGB形式に変換するデータ処理に応用することで、撮像手段から取り込んだ画像データを動画像としてリアルタイムで表示出力する場合に、データ処理に係る負担を大幅に軽減できると云う効果がある。
【図面の簡単な説明】
【図1】本発明を適用して好適なカメラ付き情報処理端末の要部を示したブロック図である。
【図2】本発明の実施例に係る画像データの形式変換処理の演算処理に用いられるデータ配列の一例を示すデータチャートである。
【図3】本発明の実施例に係る画像データの形式変換処理の補正処理に用いられる変換テーブルの一例を示すデータチャートである。
【図4】図3の変換テーブルを用いた補正処理の手順を示すフローチャートである。
【図5】従来の画像データの形式変換処理における補正処理の手順を示すフローチャートである。
【符号の説明】
10 CMOSカメラ
20 CPU
22 算術演算ユニット
30 RAM
40 ROM
50 表示部
Claims (5)
- nビット(nは自然数)の数値範囲で定義される値をmビット(mは{n+2}以上の整数)データで演算した結果を受け、この演算結果の値が上記数値範囲内にあればこの値を、当該演算結果の値が上記数値範囲の最小値より小さい値を表わしている場合には上記数値範囲の最小値を、当該演算結果の値が上記数値範囲の最大値より大きい値を表わしている場合には上記数値範囲の最大値を、それぞれ補正値として返す画像データの処理方法であって、
(m−n)ビットのアドレス範囲にデータ登録領域を有し、0番地に任意の値が登録可能で、且つ、1番地からX番地(Xは1以上の整数)までに上記数値範囲の最大値が、Y番地(YはXより大きい整数)から最終番地までに上記数値範囲の最小値がそれぞれ登録された変換テーブルを設け、
上記演算結果を受けた後、この演算結果の下位nビットを上記変換テーブルの0番地に登録し、その後、当該演算結果の上位(m−n)ビットをアドレスとして上記変換テーブルから登録値を引き出して上記補正値とすることを特徴とするデータ処理方法。 - 上記nとmはともに8の倍数であることを特徴とする請求項1記載のデータ処理方法。
- 桁数a(aは自然数)の数値範囲で定義される値を桁数b(bはaより大きな整数)のデータで演算した結果を受け、この演算結果の値が上記数値範囲内にあればこの値を、上記演算結果の値が上記数値範囲から外れていれば設定値を補正値として返すようにしたデータ処理方法であって、
0番地に任意の値が登録可能で、且つ、0番地以外のアドレスに上記設定値が登録された変換テーブルを設け、
上記演算結果を受けた後、該演算結果の下位a桁の値を上記変換テーブルの0番地に登録し、その後、上記演算結果の上位(b−a)桁の値をアドレスとして上記変換テーブルから登録値を引き出して上記補正値とすることを特徴とするデータ処理方法。 - 上記変換テーブルの1番地からX番地(Xは1以上の整数)までには上記設定値として上記数値範囲の最大値を登録し、Y番地(YはXより大きな整数)から最終番地までには上記設定値として上記数値範囲の最小値を登録することを特徴とする請求項3記載のデータ処理方法。
- 画素ごとの表示色データが含まれた画像データをYUV形式からRGB形式に変換するデータ処理装置であって、
YUV形式とRGB形式の関係式に則って画素ごとにYUV形式のデータからRGB形式のデータを演算する演算手段と、該演算手段により求められた画素ごとのRGB系データを上記請求項1〜4の何れかのデータ処理方法により所定の数値範囲に収まるように補正する補正手段とを備えていることを特徴とするデータ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002049398A JP3952804B2 (ja) | 2002-02-26 | 2002-02-26 | データ処理方法およびデータ処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002049398A JP3952804B2 (ja) | 2002-02-26 | 2002-02-26 | データ処理方法およびデータ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003250163A JP2003250163A (ja) | 2003-09-05 |
JP3952804B2 true JP3952804B2 (ja) | 2007-08-01 |
Family
ID=28661926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002049398A Expired - Fee Related JP3952804B2 (ja) | 2002-02-26 | 2002-02-26 | データ処理方法およびデータ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3952804B2 (ja) |
-
2002
- 2002-02-26 JP JP2002049398A patent/JP3952804B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003250163A (ja) | 2003-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9483848B2 (en) | Image processing apparatus having a plurality of image processing blocks that are capable of real-time processing of an image signal | |
US7554557B2 (en) | Device and method for image compression and decompression | |
JPH06309146A (ja) | 数の浮動小数点表示を整数表示に変換するための装置およびピクセルの値を生成するための方法 | |
US10796461B2 (en) | Image color conversion apparatus, non-transitory computer-readable medium storing computer program, and image color conversion method | |
CN101009851A (zh) | 一种图像处理方法及其装置 | |
US5784100A (en) | Apparatus and method for performing shading correction by multiplying a differential shading correction factor and input image data | |
JPH0418865A (ja) | ガンマ補正回路 | |
US6967660B2 (en) | Image processing apparatus and image processing system | |
JPH05207277A (ja) | ディジタルカラーマトリックス回路 | |
US8891131B1 (en) | Systems and methods for generating a transfer function to process image data | |
JPH08147453A (ja) | ルックアップテーブル作成方法及びルックアップテーブル作成装置 | |
CN106296614B (zh) | 图像处理装置及图像处理方法 | |
JP3952804B2 (ja) | データ処理方法およびデータ処理装置 | |
US6172714B1 (en) | Color adjustment table system for YUV to RGB color conversion | |
US7202974B2 (en) | Efficient under color removal | |
Cooper | Modifications to retinex to relax reset nonlinearity and implement segmentation constraints | |
JPH01121930A (ja) | データ処理装置 | |
JPH05211659A (ja) | ガンマ補正回路及び方法 | |
KR100602249B1 (ko) | 영상 처리 장치 및 그 처리 방법 | |
JPS63207292A (ja) | 色信号変換装置 | |
JP3442953B2 (ja) | クリッピング装置 | |
CN109636863A (zh) | 一种色彩空间转换电路 | |
JPH11187419A (ja) | 信号処理装置及び信号処理方法 | |
JPS62175069A (ja) | カラ−文書画像処理装置 | |
JPH0877343A (ja) | ラスター/ブロック変換方法並びにこの方法を実施する装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050225 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070413 |
|
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: 20070419 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070423 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |